home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d21 / qemmman.arc / QEMM-MAN.TXT < prev    next >
Text File  |  1991-09-20  |  95KB  |  2,038 lines

  1.  
  2.   The Quarterdeck Expanded Memory Manager-386 (QEMM-386) is a power-
  3.   ful, high performance memory manager and software control program for
  4.   80386 PCs and P5/2s. QEMM-386 enhances the utilization of your 386 PC's
  5.   memory by providing expanded, extended, and high (640K-1 024K) memory
  6.   management. And, as an 80386 control program, QEMM-386 taps into 80386
  7.   features important for multitasking and program protection by Quarterdeck's
  8.   multitasking environment, DESQview 2.
  9.  
  10.   QEMM-386's expanded memory management capability enablcs you to run
  11.   expanded memory programs, such as Paradox 3, Framework 11 and 111,
  12.   Microsoft Windows 286 v2, Aldus Pagemaker, and 1-2-3 Release 2 without
  13.   having to buy a special expanded memory board. QEMM-386 is compatible
  14.   with all three expanded memory specifications (EMS 3.2, EMS 4, and EEMS).
  15.  
  16.   It is also QEMM-386's expanded memory management capability that gives
  17.   you use of your PC's high memory. I ligh memory (the memory addresses be-
  18.   tween 640K and 1024K) has been traditionally reserved by IBM for use by
  19.   your system hardware. As DOS programs have become larger, and as you
  20.   have need to run several programs at once, high memory has increased in im-
  21.   portance. The reason is that there are often more memory addresses rescrved
  22.   for system hardware than are actually being used. So there are precious avail-
  23.   able memory addresses, usable by DOS, waiting to be used!
  24.  
  25.   QEMM-386 fills unused memory addresses in your PC's high memory with
  26.   expanded memory--so that you can then load TSR's, device drivers (such as
  27.   networks), and DOS resources in this memory. Depending on your PC and
  28.   the number of hardware add-ons you have, QEMM-386 makes anywllere
  29.   from 30-130K more memory available for you to use.
  30.  
  31.   Additionally, if your PC is either a Compaq configured with top memory or
  32.   if it has Chips & Technologies shadow RAM, QEMM-386 detects this
  33.   memory and makes it usable in the same ways it uses extended memory.
  34.  
  35.   If you need memory more than you need EGA or VGA graphics, QEMM-386
  36.   can give you an additional 96K of memory--that can be used by your DOS
  37.   program. It does that by making the memory reserved for your EGA or VGA
  38.   adapter available to your DOS program. The caveat is that while you are
  39.   using this memory, you can't be doing graphics. But, QEMM-386 makes it
  40.   easy for you to use or not use this memory.
  41.  
  42.   For P5/2 computers and other computers using microchanllel architecture,
  43.   QEMM-386 includes an "Adapter Description Library" (ADL), a record of
  44.   many peripheral hardware devices for computers using microchannel ar-
  45.   chitecture. QEMM-386 uses this information to insure a maximum amount of
  46.   safely accessible high memory with P5/2 computers.
  47.  
  48.   QEMM-386 is also an extended memory manager, compatible with the XMS
  49.   extended memory specification, specified by Microsoft and used in Windo~s
  50.   286 v2.
  51.  
  52.  
  53. 3    CHAPTER 1: INTRODUCTION
  54.  
  55.   QEMM-386 is also compatible with DOS extended programs (such as
  56.   Paradox 386,1-2-3 Release 3, Oracle Professional, IBM Interleaf). A DOS ex-
  57.   tended program is a special DOS program that runs in your PC's protected
  58.   mode--but fools DOS into thinking that it is just a normal 640K program.
  59.   QEMM-386 does require that DOS Extended programs be compatible with
  60.   the Quarterdeck/Phar Lap Virtual Control Program Interface (VCPI) specifica-
  61.   tion which specifies how 80386 control programs and DOS Extenders com-
  62.   municate to each other.
  63.  
  64.   As an 80386 control program QEMM-386 takes advantage of the 80386's vir-
  65.   tual 8086 mode to add screen virtualization and program protection to
  66.   Quarterdeck DESQview 2's multitasking capabilities. DESQview is a multi-
  67.   tasking, windowing control program that lets you run multiple DOS
  68.   programs (1-2-3, Word, Windows 286, Excel, AutoCAD) simultaneously.
  69.  
  70.   Through software in both QEMM-386 and DESQview 2, whicl- controls the
  71.   80386 processor, DESQview can run misbehaved (i.e. text or graphics
  72.   programs which write directly to the screen) DOS programs in backgroUnd,
  73.   display each program running in a small window on tl-e screen, and protect
  74.   the system against bugs in programs. In addition, QEMM-386 enables
  75.   DESQview to multitask DOS extended and normal DOS programs simul-
  76.   taneously. The bundle of the two products, DESQview 2 and QEMM-386, is
  77.   known as DESQview 386.
  78.  
  79.   Below is a summary of QEMM-386's features. QEMM-386:
  80.  
  81.   U Is an expanded memory manager, compatible with EMS 3.2, EEMS, and
  82.     EMS 4.
  83.  
  84.   O Is an extended memory manager, compatible with XMS. QEMM-386 sup-
  85.     ports all three forms of the specification--high memory area (HMA),
  86.     upper memory blocks (UMB), and extended memory blocks (EMB).
  87.  
  88.   O Is compatible with the Quarterdeck/Phar Lap Virtual Control Progralll
  89.     Interface (VCPI) interface, which specifies how DOS Extended programs
  90.     interface with 80386 control programs.
  91.  
  92.   O Is a high memory manager, which enables you to run devicc drivers,
  93.     TSR's and DOS resources (such as FILES, BUFFERS, etc.) specified in
  94.     your PC's CONFIG.SYS and AUTOEXEC.BAT fik~s, in high memory.
  95.  
  96.   O Detects Chips & Technologies shadow RAM and uses tl-is memory in tlle
  97.     same ways it uses extended memory.
  98.  
  99.   O Detects Compaq computer "top memory" and uses tl-is memory in the
  100.     same ways it uses extended memory.
  101.  
  102.   O Lets you specify how much memory is to be used for expanded and ex-
  103.     tended memory.
  104.  
  105.  
  106.  
  107. 4    CHAPTER 1: INTRODUCTION
  108.  
  109.   O Fills out any missing memory in your PC's 0-640K conventional memory
  110.     area, and in the 640K-1024K high memory area. QEMM-386 can fill areas
  111.     as small as 4K with memory.
  112.  
  113.   O Incorporates an Adapter Description Library, a record of RAM and ROM
  114.     addresses used by microchannel peripheral adapter cards, to resolve
  115.     memory addressing conflicts of microchannel architecture peripheral
  116.     devices.
  117.  
  118.   O Automatically detects the speed of high memory and uses fast memory
  119.     whenever possible.
  120.  
  121.   O Optionally maps slow ROM code into fast RAM.
  122.  
  123.   O Supports EMS4 real alternate maps.
  124.  
  125.   O Automatically controls Direct Memory Access (DMA) of all mapped
  126.     memory.
  127.  
  128.   O Enables a user, willing to forego the enhanced graphics capabilities per-
  129.     mitted by EGA and VGA adapter cards, to increase the memory used by
  130.     DOS by 96K--thus making as much as 736K of memory, instead of the
  131.     standard 640K, available to DOS.
  132.  
  133.   O Provides extensive reporting and analytical information about the first
  134.     megabyte of memory.
  135.  
  136.   O Transforms Quarterdeck's DESQview 2.2 into an 80386 control program--
  137.     capable of running multiple DOS programs simultaneously with multi-
  138.     ple DOS extended programs. This combination of QEMM-386 and
  139.     DESQview 2.2 is called DESQview 386.
  140.  
  141.   QEMM-386 is a very powerful program. Because of this power, QEMM-386 is
  142.   very technical in nature. Knowing this, we've tried to make it as easy as pos-
  143.   sible for non-technical users to install and optimally configure their memory.
  144.  
  145.   As a result, most users need only to know the command, INSTALL. QEMM-
  146.   386's installation program looks at your PC and sets whatever command line
  147.   parameters it needs to transform your memory into expanded memory. Your
  148.   PC is ready to be used.
  149.  
  150.   However, QEMM-386 goes one step further. QEMM-386 also has an program,
  151.   called Optimize, which can automatically alter your AUTOEXEC.BAT and
  152.   CONFIG.SYS files to load programs into the optimal regions of high memory.
  153.  
  154.   For the PC guru, who likes to fine-tune a PC to get optimum utilization of
  155.   memory, QEMM-386 has some very powerful features. QEMM-386 watches
  156.   your memory to determine what memory is accessed by programs. QEMM-
  157.   386 then analyzes memory and recommends what additional high memory
  158.   can be used to load TSRs, drivers etc. "Analyze" is for the brave, and does
  159.   come with warnings to be careful.
  160.  
  161.  
  162. 5    CHAPTER 1: INTRODUCTION
  163.  
  164.       Built-in to QEMM-386 is a comprehensive reporting facility. Using these
  165.       reports, you can display status information about QEMM-386 and maps of
  166.       the first megabyte of memory. One map shows you the first megabyte as
  167.       QEMM- 386 sees it; another shows a map of what memory your programs
  168.       have accessed; a third map shows QEMM-386's analysis of what high
  169.       memory can be used or not. The information displayed is the same informa-
  170.       tion that is provided by Quarterdeck's memory analysis and reporting pro-
  171.       gram, Manifest.
  172.  
  173. nual QEMM-386 is really a set of programs that help you get the best utilization of
  174.      your memory. If you are a non-technical PC user, there is no need to read any
  175.      further than Chapter 2, Installation. The remaining chapters of the manual
  176.      are intended as references and should be used if you have a problem in in-
  177.      stalling QEMM-386 or if you wish to fine-tune QEMM-386. The QEMM-386
  178.      manual is organized as follows:
  179.  
  180.       O Chapter 2, Installation describes how to install QEMM-386 and use the
  181.         QEMM-386 Optimize program.
  182.  
  183.       O Chapter 3, The QEMM.SYS Program lists the QEMM-386 command line
  184.         parameters used to set up your PC's memory.
  185.  
  186.       U Chapter 4, The QEMM.COM Program describes how to change QEMM's
  187.         current state (ON, OFF, or AUTO), and describes the QEMM memory
  188.         reports.
  189.  
  190.       O Chapter 5, The LOADHI Programs describes how to load TSR's and
  191.         device drivers in high memory.
  192.  
  193.       O Chapter 6, DOS Resources Programs describes the programs used to load
  194.         DOS BUFFERS, FILES, FCBS, and LASTDRIVE in high memory.
  195.  
  196.       O Chapter 7, The VIDRAM Program describes how to use the EGA/VGA
  197.         video memory to run programs.
  198.  
  199.       O Chapter 8, Other QEMM-386 I'rograms describes EMS2EXT, which lets
  200.         you specify how much memory to set as expanded and extended
  201.         memory, and EMS, which lets the technical user view and manipulate
  202.         EMS handles.
  203.  
  204.       O The appendices cover four topics: Appendix A: Troubleshooting, Appen-
  205.         dix B: Making a Boot Disk, Appendix C: Creating a Pure Environment,
  206.         and Appendix D: Modifying the MCA.ADL File.
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.    6    CHAPTER 1: INTRODUCTION
  217.  
  218.   You install QEMM-386 by running the QEMM installation program,
  219.   INSTALL. You should also use INSTALL if you are installing an upgrade of
  220.   QEMM-386.
  221.  
  222.   If you have a new 80386 PC, be sure to complete the standard installation
  223.   and setup procedures of your PC before installing QEMM-386.
  224.  
  225.   QEMM-386 is a device driver, which means that it must be loaded as part of
  226.   the boot sequence of your PC. INSTALL automatically crcates the necessary
  227.   command to load QEMM-386 and places it at the beginning of your
  228.   CONFIG.SYS file--or creates a CONFIG.SYS file if you don't have one al-
  229.   ready.
  230.  
  231.   INSTALL also installs Manifest, Quarterdeck's comprehensive memory
  232.   reporting and analysis program, if Manifest is bundled together with
  233.   QEMM-386. Manifest describes your PC, specifically the software and
  234.   hardware that use your memory. In doing so, it gives you an understanding
  235.   of how best to use your PC's memory.
  236.  
  237.   As a precaution, before installing QEMM-386, you should check that there is
  238.   no other expanded memory manager loaded in your CONFIG.SYS. An ex-
  239.   panded memory manager characteristically has the letters, EMM in its namc.
  240.   Also, if Microsoft's HIMEM.SYS extended memory managcr is specified in
  241.   your CONFIG.SYS file, you should remove it. QEMM-386 is an cxtended
  242.   memory manager, and provides the same functionality as HIMEM.
  243.  
  244.   To install QEMM-386:
  245.  
  246.  
  247.  ∙ Place the QEMM-386 diskette in drive A.
  248.  
  249.  ∙Type A:INSTALL and press ~.
  250.  
  251.   NOTE: If you have an LCD or Gas Plasma display, as on some laptops, we
  252.   recommend that you:
  253.  
  254.  ∙Type A:lNSTALL/m and press ~.
  255.  
  256.   Follow the instructions on the screen. INSTALL copies tl-c QEMM files to
  257.   your hard disk and allows you to configure QEMM. INSTALL's base con-
  258.   figuration settings, for most of you, will bc correct.
  259.  
  260.   The most common reason that you'll want to changc QEMM-386's settings
  261.   is when you're using VDISK. Normally, QEMM-386 takes all of extended
  262.   memory for itself. If you're using VDISK, you'll want to allocate part of ex-
  263.   tended memory to VDISK, using QEMM's EXTMEM con-mand line
  264.   parameter. (For information on tl-e EXTMEM parametcr, sce Cl-apter 3: Thc
  265.   QEMM.SYS Program, page 16.)
  266.  
  267.  
  268.  
  269. 7    CHAPTER 2: INSTALLATION
  270.  
  271.   INSTALL displays a separate screen for each instruction you are likely to
  272.   want to change. For information about the QEMM's command line
  273.   parameters, see Chapter 3 The QEMM.SYS Program, page 11.
  274.  
  275.   That's all there is to installing QEMM-386. Since QEMM-386 is a device
  276.   driver, you do have to reboot your system for its settings to take effcct. Most
  277.   likely, your memory has been configured by INSTALL in the following way:
  278.  
  279.   O All the memory in your PC has been made into expandcd memory, com-
  280.     patible with the EMS 4 expanded memory specification.
  281.  
  282.   O If you are installing an upgrade to QEMM-386, the install program
  283.     honors the way you have previously configurcd your memory.
  284.  
  285.   To see how your memory is used, refer to Memory Report in Chaptcr 4, Tl-c
  286.   QEMM.COM Program on page 27. To see a map of your first n~egabyte of
  287.   memory, see Chapter 4 The QEMM.COM Program, Type Report, pagc 24.
  288.  
  289.   Also, if you are unfamiliar with memory, please rcfer to Quarterdeck's
  290.   Manifest program. Manifest explains memory (first meg, expanded, cx-
  291.   tended). It describes the various expanded memory specifications. It also
  292.   gives you information about your DOS configuration and tl-e hardware in
  293.   your PC. Manifest does display the same information, in it's category called
  294.   QEMM-386, as does the QEMM.COM program--but in a morc pleasing
  295.   visual format.
  296.  
  297.   The last screen displayed by the QEMM-386 installation program is a screel-
  298.   that tells you to reboot your PC to load QEMM-386, and recon-mends thclt
  299.   you then run the Optimize program. Optimize loads your TSR's, devicc
  300.   drivers, and DOS resources in high memory. By loading these in l-igl-
  301.   memory, you have more memory below 640K available for programs.
  302.  
  303.   Optimize does two things:
  304.  
  305.   O First it modifies the QEMM.SYS command line--adding thc RAM
  306.     parameter. This parameter maps memory into any available memory ad-
  307.     dresses in the high memory addresses between 64()K and 1024K. Wc call
  308.     the memory mapped into these available addresses, high RAM. I ligl~
  309.     RAM is memory ready to be used to load TSR's, drivers (sucl- as net-
  310.     works), and DOS resources--thus freeing memory below 640K and
  311.     giving your DOS programs more memory in which to run.
  312.  
  313.   O Then it looks at your CONFIG.SYS and AUTOEXEC.BAT files to dctcr-
  314.     mine what can be loaded in High RAM using QEMM-386's LOAvHI,
  315.     and DOS resources programs. It tl-en changes your CONFIG.SYS and
  316.     AUTOEXEX.BAT files accordingly.
  317.  
  318.   If you aren't using large DOS programs and hence aren't suffering from
  319.   RAM cram, you won't need to run Optimize. Also if you are a sopl-isticated
  320.   user, you may wish to choose what is loaded high. In this case, please rcfcr
  321.  
  322.  
  323. 8    CHAPTER 2: INSTALLATION
  324.  
  325.   to Chapter 5, The LOADHI Programs, and Chapter 6, DOS Resource
  326.   Programs.
  327.  
  328.   After rebooting, your PC is ready to run expanded memory programs.
  329.   NOTE: the QEMM-386 program, VIDRAM, discussed in Chapter 7 The
  330.   VIDRAM Program, can make 96K more memory available to your DOS pro-
  331.   gram--if you don't need to use EGA or VGA graphics.
  332.  
  333.   If after rebooting, your system fails to initialize, you can recover without
  334.   having to resort to a boot floppy by doing the following:
  335.  
  336.  ∙ Reset your system again. Use the power switch if necessary.
  337.  
  338.  ∙Wait until you hear a beep, then hold down the Alt key.
  339.  
  340.   QEMM pauses with the message, "QEMM; Press any key to continue. Esc to
  341.   abort."
  342.  
  343.  ∙ Press the Esc key.
  344.  
  345.   Your system will then proceed with the boot sequence. QEMM will not be
  346.   loaded and thus, no programs will be loaded into high RAM. Your system
  347.   will, however, be usable. Refer to Chapter 3, The QEMM.SYS Program on its
  348.   parameters for changes needed on your system. See also Appendix A
  349.   Troubleshooting for additional guidelines..
  350.  
  351.   The Optimize program scans your CONFIG.SYS and AUTOEXEC.BAT files
  352.   to find device drivers, TSRs, and DOS resources that can be put in the high
  353.   memory area. From its analysis, Optimize makes the changes to these files to
  354.   make use of this memory for you. It also makes sure you have a memory
  355.   manager installed that can turn the high memory area into high RAM.
  356.  
  357.   For many, the use of Optimize during installation is all that is necessary to
  358.   make immediate use of the high memory area. To run Optimize:
  359.  
  360.  ∙ Change to the subdirectory that you used to install QEMM-386.
  361.  
  362.  ∙Type Optimize and press ~.
  363.  
  364.   In special situations, some of you will want to customize your system fur-
  365.   ther. The reference sections in this manual are for that purpose. In particular,
  366.   see the Chapter 5 The LOADHI Programs, and Chapter 6 The DOS Resource
  367.   Programs. In either case, we recommend that you run Optimize now. The
  368.   changes you will see in your start-up files will help you use these programs.
  369.  
  370.   If you choose not to run Optimize now, you can run it at any time in the fu-
  371.   ture. In fact, you should run Optimize whenever you add device drivers,
  372.   TSRs, change your DOS resources memory or change your high memory
  373.   configuration in any way.
  374.  
  375.  
  376.  
  377.  
  378. 9    CHAPTER 2: INSTALLATION
  379.  
  380.       Optimize changes CONFIG.SYS and AUTOEXEC.BAT. Your original files are
  381.       first copied to CONFIG.QDK and AUTOEXEC.QDK. Optimize also re-boots
  382.       your system twice before it is done. When it completes, your system should
  383.       have programs and data in high RAM. And, your application programs
  384.       should have more memory available to them.
  385.  
  386.       NOTE: If your AUTOEXEC.BAT file runs a program that is not a TSR (that
  387.       is, it does not exit immediately on its own), then you will have to quit that
  388.       program manually to allow Optimize to continue.
  389.  
  390.       Optimize does not attempt to read or analyze any batch files it finds within
  391.       your AUTOEXEC.BAT. Any TSRs loaded from within an embedded batch
  392.       file will not be loaded into high RAM. If at all possible, consider putting the
  393.       contents of these batch files directly into AUTOEXEC.BAT. Then re-run Op-
  394.       timize to gain even more memory.
  395.  
  396. ize To run Optimize at any time in the future, change to the subdirectory that
  397. ~n      your used to install QEMM-386 and
  398.  
  399.     ∙Type Optimize and press ~.
  400.  
  401.       Optimize changes CONFIG.SYS and AUTOEXEC.BAT. Your original files are
  402.       first copied to CONFIG.QDK and AUTOEXEC.QDK. Optimize also re-boots
  403.       your system twice before it is done. When it completes, your system should
  404.       have programs and data in high RAM. And, your application programs
  405.       should have more memory llvail~ble to them
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.     10            CHAPTER 2: INSTALLATION
  430.  
  431.   This chapter is the reference guide for the command line parameters used
  432.   with QEMM.SYS. Since QEMM.SYS, on installation, uses the command line
  433.   parameters it thinks appropriate for your system, you should not have to use
  434.   the commands in this chapter unless you want to fine-tune your memory
  435.   configuration or you are experiencing problems.
  436.  
  437.   To use a QEMM.SYS command line parameter you type the parameter name
  438.   on the same line as DEVICE=QEMM.SYS in your CONFIG.SYS file. You
  439.   may use an abbreviation instead of the parameter name. The abbreviation
  440.   for each QEMM.SYS command line parameter is shown below in paren-
  441.   theses after each parameter name. For example, the QEMM.SYS command
  442.   line with the RAM and ROM parameters set, looks like:
  443.  
  444.    DEVICE=QEMM.SYS RAM ROM=COOO
  445.  
  446.   IMPORTANT: Do not put spaces within a parameter. In the example above,
  447.   make sure that you don't have a space before or after the = sign in
  448.   ROM=COOO. Also, all of the parameters must be typed on the same line as
  449.   DEVICE=QEMM.SYS.
  450.  
  451.   There are three categories of QEMM.SYS parameters: frequently used
  452.   parameters, fine-tuning parameters, and parameters to try when QEMM
  453.   does not work. Note there is often no good way of knowing that a parameter
  454.   will help your situation--you'll have to experiment.
  455.  
  456.   Most frequently used QEMM.SYS command line parameters are:
  457.  
  458.   O RAM or RAM=xxxx-yyyy puts RAM everywhere or in the range
  459.     specified. The RAM parameter must be set if you want to run TSRs,
  460.     drivers or DOS resources in high memory.
  461.  
  462.   O ROM or ROM=xxxx-yyyy puts ROM everywhere or in the range
  463.     specified. Specifying ROM usually results in the ROM code running
  464.     much faster since RAM is often faster than ROM.
  465.  
  466.   O INCLUDE=xxxx-yyyy, (I), considers the range specified mappable.
  467.  
  468.   O EXCLUDE=xxxx-yyyy, (X), considers the range specified unmappable.
  469.  
  470.   QEMM-386 command line parameters to use when fine-tuning your
  471.   memory include:
  472.  
  473.   O HELP displays all QEMM.SYS parameters and a one line description of
  474.     what each does.
  475.  
  476.   O ? displays a list of all QEMM.SYS command line parameters and where
  477.     appropriate the abbreviation for the parameter.
  478.  
  479.   O ADAPTERRAM=xxxx-yyyy, (ARAM), indicates that an adapter has
  480.     RAM in the range specified.
  481.  
  482.  
  483.  
  484. 11   CHAPTER 3: THE QEMM.SYS PROGRAM
  485.  
  486.   O ADAPTERROM=xxxx-yyyy, (AROM), indicates that an adapter has
  487.     ROM in the range specified.
  488.  
  489.   O AUTO, (AU), sets QEMM to turn on if necessary.
  490.   O COMPAQEGAROM, (CER), relocates Compaq's video ROM.
  491.   O COMPAQHALFROM, (CHR), splits Compaq's system ROM in half.
  492.   O COMPAQROMMEMORY, (CRM), uses Compaq ROM memory.
  493.   O DOS4, (D4), alters EMS page ordering for DOS 4.00.
  494.   O EXTMEM=xxxxx, (EXT), specifies the amount of extended memory
  495.     which should not be used by QEMM.
  496.  
  497.   O FRAME=xxxx, (FR), sets the page frame location (either a segment or
  498.     NONE).
  499.  
  500.   O HMAMIN=xx sets the minimum size of the HMA (0-63K).
  501.   O MAPS=xx, (MA), sets the number of alternate register sets.
  502.   O MEMORY=xxxxx, (ME) or (MEM), specifies the 80386 extended
  503.     memory that QEMM uses both for itself and as expanded memory.
  504.  
  505.   O NOEMS tells QEMM not to be an expanded memory manager.
  506.   O NOPAUSEONERROR, (NOPE), doesn't pause on error.
  507.   O OFF, (OF), turns QEMM off.
  508.   O ON turns QEMM on.
  509.   O PAUSE pauses while parsing commands.
  510.   O WATCHDOG=[0,1,2], (WD), sets the type of watchdog timer.
  511.   QEMM.SYS command line parameters that should only be used when ex-
  512.   periencing problems include:
  513.  
  514.   O DISKBUF=xx, (DB), specifies the size in K of the disk buffer to use to
  515.     handle SCSI disk drives.
  516.  
  517.   O COMPAQ386S, (C386S), identifies your PC as a Compaq 386S.
  518.   O DMA=xx, (DM), sets the size of the DMA buffer.
  519.   O HANDLES=xxx, (HA), sets the number of EMS handles.
  520.   O IGNOREA20, (IA), does not trap the 8042.
  521.   O NOCOMPAQFEATURES, (NCF), disables use of EGAROM,
  522.     HALFROM, and ROMMEMORY on a Compaq computer.
  523.  
  524.  
  525. 12   CHAPTER 3: THE QEMM.SYS PROGRAM
  526.  
  527.   O NOFILL, (NO), doesn't fill conventional memory.
  528.   O NOHMA instructs QEMM to consider the HMA already allocated.
  529.   O NOROM, (NR), doesn't map the reboot page of the system ROM.
  530.   O NOROMHOLES, (NRH), doesn't look for holes in the system ROM.
  531.   O NOSHADOWRAM, (NOSH), doesn't use Shadow RAM.
  532.   O NOSORT, (NS), doesn't sort memory.
  533.   O NOTOPMEMORY, (NT), doesn't look for top memory.
  534.   O NOVIDEOFILL, (NV), doesn't fill video memory.
  535.   O NOXBDA, (NX), doesn't move the extended BIOS data area.
  536.   O NOXMS instructs QEMM to not be an extended memory manager.
  537.   O OLDDV, (ODV), tells QEMM that you are running DESQview 1.3 or
  538.     2.00.
  539.  
  540.   O TASKS=xx, (TA), sets the interrupt nesting level.
  541.   O UNUSUAL8042, (U8), tells QEMM that your 8042 is non-standard.
  542.   O UNUSUALEXT, (UX), tells QEMM that the method of determining the
  543.     amount of extended memory is non-standard.
  544.  
  545.   Described below are the QEMM.SYS command line parameters that you
  546.   use most frequently.
  547.  
  548.   O RAM or RAM=xxxx-yyyy specifies that QEMM should "fill in" areas of
  549.     memory above 640K and below 1024K which do not have ROM, RAM,
  550.     or adapter RAM in them. These areas can then be used by the LOADHI
  551.     programs and DESQview's XDV program. You may specify RAM
  552.     without the address range xxxx-yyyy and let QEMM automatically use
  553.     all appropriate memory addresses. If RAM is specified, QEMM's initial
  554.     state is forced ON and cannot be overridden.
  555.  
  556.   O ROM or ROM=xxxx or ROM=xxxx-yyyy specifies areas of ROM which
  557.     should be copied to RAM and then mapped into the same place. xxxx
  558.     and yyyy are hexadecimal numbers which specify the address range
  559.     which should be copied. Specifying ROM usually results in the ROM
  560.     code running much faster since RAM is often faster than ROM. For ex-
  561.     ample, to have the system BIOS ROM mapped into RAM you would
  562.     use ROM=FOOO-FFFF. To map an EGA ROM use ROM=COOO as in the
  563.     last example, only specify the starting address and let QEMM determine
  564.     the size of the ROM. You may specify ROM without the address range
  565.     xxxx-yyyy and let QEMM map all ROMs. If ROM is specified, QEMM's
  566.     initial state is forced ON and cannot be overridden.
  567.  
  568.  
  569. 13   CHAPTER 3: THE QEMM.SYS PROGRAM
  570.  
  571.   O INCLUDE=xxxx-yyyy, (I), specifies an area of memory which should be
  572.     under the control of QEMM. xxxx and yyyy are hexadecimal numbers
  573.     which specify the address range (xxxx-yyyy) which should be included.
  574.     xxxx should be a multiple of 4K. Under normal conditions, QEMM auto-
  575.     matically detects all usable areas. This parameter is most frequently
  576.     used based on suggestions made by the QEMM Analysis procedure (see
  577.     Chapter 4, The QEMM.COM Program, page 27). Another use is if you
  578.     wanted to have QEMM use an unused video area, such as the color area
  579.     when using a VGA with a monochrome monitor, then INCLUDE=B800-
  580.     BFFF would be appropriate. The INCLUDE and EXCLUDE options are
  581.     processed sequentially, so it is possible to EXCLUDE an area and then
  582.     INCLUDE a part of it later on the command line.
  583.  
  584.   O EXCLUDE=xxxx-yyyy, (X), specifies an area of memory in the first
  585.     megabyte which should not be under the control of QEMM.SYS. You
  586.     only need to specify an excluded region if QEMM.SYS cannot automat-
  587.     ically detect it. xxxx and yyyy are hexadecimal numbers which specify
  588.     either the address range (xxxx-yyyy) which should be excluded. xxxx
  589.     should be a multiple of 4K. For example, if you have a network adapter
  590.     that uses 16K of memory at address CCOO, then you would use EX-
  591.     CLUDE=CCOO-CFFF. You may specify multiple ranges by using EX-
  592.     CLUDE several times.
  593.  
  594.   Note that QEMM needs at least 64K of contiguous memory between 640K
  595.   and 960K (AOOO to FOOO) for a page frame, so care must be taken to leave at
  596.   least 64K free in this area. If a 64K area can not be found above 640K, then
  597.   576K (9000) will be automatically selected by QEMM.SYS. If selected, the
  598.   9000 address will reduce the amount of memory available to DOS by 64K.
  599.   (See also Page 16 for more information about the FRAME command line
  600.   parameter.)
  601.  
  602.   QEMM.SYS command line parameters that you use in fine-tuning your
  603.   memory are listed below.
  604.  
  605.   O HELP displays all QEMM.SYS parameters and a one line description of
  606.     what each does.
  607.  
  608.   O ? displays a list of all QEMM.SYS command line parameters and where
  609.     appropriate the abbreviation for the parameter.
  610.  
  611.   O ADAPTERRAM=xxxx-yyyy, (ARAM), identifies an area of memory as
  612.     having RAM from an adapter of some sort, usually a network adapter,
  613.     3270 adapter, or some other special device. Normally QEMM automat-
  614.     ically finds these areas, but with some adapters may not be able to. If it
  615.     does not, then you use this switch to specify the type of memory in this
  616.     area. These devices usually use this RAM to provide very high perfor-
  617.     mance by allowing the PC to access some memory on the adapter as
  618.     though it is part of the computer's memory. These areas mllst NOT be
  619.  
  620.  
  621. 14   CHAPTER 3: THE QEMM. SYS PROGRAM
  622.  
  623.     used as high RAM. The ADAPTERRAM switch is just like EXCLUDE,
  624.     except that the QEMM.COM Type display will show the area as "Adapt-
  625.     er RAM" rather than as "Excluded".
  626.  
  627.   O ADAPTERROM=xxxx-yyyy, (AROM), identifies an area of memory as
  628.     having ROM from an adapter of some sort. This ROM area is usually
  629.     from a network adapter, 3270 adapter, video adapter, or some other spe-
  630.     cial device. Normally QEMM automatically finds these areas, but with
  631.     some adapters it may not be able to. If it does not, then you use this
  632.     switch to specify the type of memory in this area. The ROM for the
  633.     adapter might not be visible to QEMM when it is looking for ROM.
  634.     This switch ensures that QEMM will not allow the area to be mappable,
  635.     and thus it will not place high RAM into the area. If the ROM is seen by
  636.     QEMM and the ROM switch also appears, then the adapter ROM will
  637.     be mapped to RAM to speed up access to the ROM. Specifying ADAP-
  638.     TERROM is more like EXCLUDE, but allows you to document the ex-
  639.     cluded area for yourself.
  640.  
  641.   O AUTO or ON or OFF, (AU or ON or OF), controls whether QEMM puts
  642.     the system into virtual 8086 mode and how expanded memory should
  643.     be handled. AUTO (AU) specifies that QEMM should tum ON when a
  644.     program needs expanded memory. ON specifies that expanded memory
  645.     is available and the processor is in virtual 8086 mode. OFF (OF)
  646.     specifies that expanded memory is not available and the processor is in
  647.     real mode. If you don't specify any of these three parameters, AUTO is
  648.     used. We recommend that you use AUTO unless you have a specific
  649.     reason for setting the initial state to ON or OFF.
  650.  
  651.     Note that if the RAM or ROM parameters are specified, the initial state
  652.     is automatically set to ON, and may not be tumed OFF.
  653.  
  654.   O COMPAQEGAROM, (CER), relocates Compaq's video ROM. Compaq
  655.     computers automatically copy the slow EGA or VGA ROM which is ad-
  656.     dressed at COOO to fast memory addressed at EOOO. QEMM.SYS reverses
  657.     this process to increase the amount of high memory on Compaq com-
  658.     puters. It also automatically maps RAM into the addresses of ROM at
  659.     COOO to increase the ROM speed. When QEMM.SYS detects a Compaq
  660.     386, QEMM.SYS will use COMPAQEGAROM (CER) as a default. If
  661.     you want to shut it off, specify NOCOMPAQFEATURES (NCF~ on the
  662.     QEMM.SYS command line.
  663.  
  664.   O COMPAQHALFROM, (CHR), splits Compaq's system ROM in half.
  665.     Most Compaq 386 computers have two halves to their system ROM.
  666.     The two halves are addressed at FOOO-F7FF and F800 ~ These ad-
  667.     dresses contain redundant information. QEMM.SYS splits the ROM to
  668.     make the redundant section useful for high memory. When QEMM.SYS
  669.     detects a Compaq 386, QEMM.SYS sets COMPAQHALFROM (CRM)
  670.     as a default. If you want to shut this off, specify NOCOMPAQFEA-
  671.     TURES (NCF) on the QEMM.SYS command line.
  672.  
  673. 15   CHAPTER 3: THE QEMM.SYS PROGRAM
  674.  
  675.   O COMPAQROMMEMORY, (CRM), uses Compaq ROM memory. Com-
  676.     paq Deskpro 386 computers reserve 128K of high memory addresses to
  677.     speed up the system ROM and the EGA ROM. QEMM.SYS can both
  678.     speed up the system ROM (using its ROM parameter) and make these
  679.     high memory addresses available to load TSR's, device drivers, and
  680.     DOS resources, using its LOADHI programs. When QEMM detects a
  681.     Compaq 386, QEMM will use COMPAQROMMEMORY (CRM) as a
  682.     default. If you want to turn this parameter off, you must specify
  683.     NOCOMPAQFEATURES (NCF).
  684.  
  685.   O DOS4, (D4), alters EMS page ordering for DOS 4.00. You use DOS4
  686.     only with PC-DOS version 4.00 and when using its /X instruction.
  687.     DOS4 instructs QEMM.SYS to deviate from the EMS 4.0 specification
  688.     enough to accommodate bugs in early versions of PC-DOS 4.0, which
  689.     did not strictly adhere to the EMS 4.0 specification. If you are using PC-
  690.     DOS 4.00 we recommend you not use the /X switch to BUFFERS,
  691.     VDISK, and FASTOPEN.
  692.  
  693.   O EXTMEM=xxxxx, (EXT), specifies the amount of extended memory
  694.     which should not be used by QEMM.SYS. The xxxxx must be in the
  695.     range 1 to 31744 representing an allocation of lK to 31744K. This
  696.     parameter is useful when using RAM disks and disk caches which use
  697.     extended memory, since you can ask QEMM to "leave alone" the
  698.     memory needed. If the EXTMEM parameter is omitted, QEMM leaves
  699.     no extended memory and uses all it can find. The EXTMEM and
  700.     MEMORY parameters have opposite meanings. The EXTMEM means
  701.     "leave at least this much memory". MEMORY means "use as much as
  702.     this much memory".
  703.  
  704.   O FRAME=xxxx, (FR), specifies the page frame address, which is the ad-
  705.     dress of the beginning of the 64K segment through which expanded
  706.     memory is mapped according to the EMS specification. Typical loca-
  707.     tions for xxxx are: COOO, C400, C800, CCOO, DOOO, D400, D800, DCOO, or
  708.     EOOO. In unusual cases AOOO may be used if no free area can be found
  709.     and you have a monochrome or CGA video adapter card. A 64K area of
  710.     memory should be available at one of these addresses to in order to pro-
  711.     vide EMS capabilities. If the FRAME parameter is omitted, the value of
  712.     xxxx is chosen by QEMM according to your hardware configuration.
  713.     We recommend that you not set FRAME except when QEMM's auto-
  714.     matic choice of a base address fails because of a hardware conflict that
  715.     QEMM can't detect. If there are no satisfactory addresses available,
  716.     QEMM still can be used for memory filling, sorting, high RAM filling,
  717.     multitasking and ROM mapping, but not as an expanded memory
  718.     manager, by specifying FRAME=NONE.
  719.  
  720.  
  721.  
  722.  
  723.  
  724. 16   CHAPTER 3: THE QEMM . SYS PROGRAM
  725.  
  726.   O HMAMIN=xx specifies the minimum amount of memory that a pro-
  727.     gram which uses the XMS High Memory Area (HMA) can request.
  728.     Since only one program can use the HMA but several programs might
  729.     want to use it, this parameter only allows a program which uses at least
  730.     xxK of memory in the HMA. The parameter is not necessary if you have
  731.     only one program which uses the HMA, such as DESQview.
  732.  
  733.   O MEMORY=xxxxx, (ME or MEM), specifies the amount of 80386 ex-
  734.     tended memory that QEMM uses both for itself and as expanded
  735.     memory. xxxxx should be in the range 128 to 32128, representing an al-
  736.     location of 128K to 32128K. If the MEMORY parameter is omitted,
  737.     QEMM takes all of the available extended memory.
  738.  
  739.   O NOEMS tells QEMM not to provide any expanded memory services at
  740.     all, even for multitasking. It is only useful if you want to load a dif-
  741.     ferent expanded memory manager, but you still want to use QEMM.
  742.  
  743.   O NOPAUSEONERROR, (NOPE), doesn't pause on an error. QEMM
  744.     usually displays a "Press any key to continue, ESC to abort" message
  745.     after parsing command line instructions if there are parameter errors.
  746.     This instructs QEMM.SYS to not display the message. When an instruc-
  747.     tion causes QEMM.SYS to generate the above error, and when the error
  748.     generated has been shown to not cause any disruption of the system,
  749.     use the NOPE instruction
  750.  
  751.   O OFF, (OF), see AUTO I ON I OFF.
  752.  
  753.   O ON see AUTO I ON I OFF.
  754.  
  755.   O PAUSE tells QEMM.SYS (and all the QEMM-386 programs) to pause
  756.     the display when outputting messages. The PAUSE command permits
  757.     you to hit the "Esc" key to stop QEMM.SYS from installing. This is use-
  758.     ful when trying out new parameters, so you can abort the load if there
  759.     was an error. Note that if there is an error on the QEMM.SYS command
  760.     line, QEMM will automatically pause to show you the source of the
  761.     error.
  762.  
  763.   O WATCHDOG=O,l, or 2, (WD), specifies the type of watchdog timer set.
  764.     In the DESQview Change a Program "Protection level (0-3)" setting,
  765.     level one represents protection against programs which lock interrupts
  766.     for too long. Watching for locked interrupts depends on the existence of
  767.     certain hardware. There are two different kinds of hardware that
  768.     QEMM.SYS supports to perform the "WATCHDOG" timer feature. One
  769.     is on PS/2s and another is on Compaq Deskpro 386 computers. By
  770.     default QEMM.SYS tries to determine which hardware to use. The WD
  771.     switch is for a machine which "clones" one or the other of the abovc
  772.     mentioned features. WD=O means no watchdog timer; WD=l means
  773.     PS/2-style; WD=2 means Compaq-style.
  774.  
  775.  
  776. 17   CHAPTER 3: THE QEMM.SYS PROGRAM
  777.  
  778.   Described below are those QEMM.SYS command line parameters that
  779.   should be used only when you are experiencing problems.
  780.  
  781.   O COMPAQ386S, (C386S), identifies the PC as a Compaq 386S. QEMM
  782.     will normally be able to automatically identify the Compaq 386S if
  783.     Compaq's Setup program version 6.02 or greater has been run. If you
  784.     are not using this version, then this switch is necessary in order for
  785.     QEMM to perform the correct optimizations. After using version 6.02 or
  786.     greater of Compaq's Setup program, you will not need this switch.
  787.  
  788.   O DISKBUF=xx, (DB), specifies the si~e of the SCSI disk buffer, in K. Be-
  789.     cause of the special way that SCSI devices acces memory, QEMM's nor-
  790.     mal DMA buffering is not adequate. QEMM can optionally use a
  791.     separate SCSI buffer for fixed disk accesses. This parameter specifies the
  792.     size of this buffer. The larger the buffer, the better the disk performance,
  793.     at the expense of conventional memory use.
  794.  
  795.   O DMA=xxx, (DM), specifies the length of the maximum DMA transfer
  796.     that that can performed. xxx must be in the range 12 to 128, repre-
  797.     senting a maximum length of 12K to 128K.
  798.  
  799.   O HANDLES=xxx, (HA), specifies the number of handles and names avail-
  800.     able. xxx must be in the range 16 to 255. Each application which uses ex-
  801.     panded memory requires at least one handle. Some applications require
  802.     extra handles. The default is 64 which should be adequate for most pur-
  803.     poses. Larger values increase the amount of extended memory used by
  804.     QEMM. Each HANDLE requires 28 bytes of extended memory.
  805.  
  806.   O IGNOREA20, (IA), does not trap the 8042. By default, QEMM.SYS traps
  807.     the 8042 ports for the purpose of detecting programs which attempt to
  808.     manipulate the state of the A20 line. Programs do this to access ex-
  809.     tended memory. However, sometimes keyboard problems arise as a
  810.     result. The IA instruction disables support of HIMEM.SYS, but it may
  811.     serve to remove some keyboard-related problems as a trade-off. QEMM-
  812.     386 supports XMS, and so there is no good reason to load HIMEM.SYS.
  813.  
  814.   O MAPS=xxx, (MA), specifies the number of alternate maps which are
  815.     available. xxx must be in the range O to 255. Each map uses 4K of ex-
  816.     tended memory. Alternate maps are used by operating environments to
  817.     speed up multitasking. There should be one more map specified as
  818.     programs you wish to run concurrently. The default value is 8. If you
  819.     do not run a multitasker, you can set MAPS=O.
  820.  
  821.   O NOCOMPAQFEATURES, (NCF), disables use of EGAROM,
  822.     HALFROM, and ROMMEMORY on a Compaq computer. If QEMM
  823.     detects a Compaq computer, it turns on all three Compaq parameters
  824.     (COMPAQEGAROM, COMPAQHALFROM, and COMPAQROM-
  825.     MEMORY). You can turn them all off by specifying NOCOMPAQFEA-
  826.     TURES. After turning all features off, you may turn each on separately.
  827.  
  828.  
  829. 18   CHAPTER 3: THE QEMM.SYS PROGRAM
  830.  
  831.   O NOFILL, (NO), specifies that QEMM.SYS should not fill conventional
  832.     memory below 640K. This option is only meaningful if your machine
  833.     has less than 640K of convcntional memory. If it docs, QEMM normally
  834.     fills in this missing memory, up to 640K from extended memory.
  835.     NOFILL specifies not to do this. If QEMM fills conventional memory,
  836.     the initial state ON is forced and cannot be overridden. NOFILL also
  837.     prevents video filling (see NOVIDEOFILL).
  838.  
  839.   O NOHMA instructs QEMM to consider the HMA already allocated. If
  840.     there is an XMS driver loaded before QEMM and the HMA is already al-
  841.     located, you should use this switch or NOXMS.
  842.  
  843.   O NOROM, (NR), doesn't map the reboot page of thc system ROM.
  844.     Often QEMM normally maps one 4K page of the systcm ROM in order
  845.     to detect reboots. QEMM.SYS can detect re-boots without this proccss.
  846.     In this case, you may specify NOROM and save 4K of memory.
  847.  
  848.   O NOROMHOLES, (NRH), disables QEMM's automatic detc ction of
  849.     ROM holes, or unused addresses in ROM. Many system ROM chips
  850.     which are addressed betwecn FOOO and FFFF have large unused areas.
  851.     QEMM.SYS automatically detects unused areas and includes thcm.
  852.     However, sometimes QEMM.SYS's auto-detection does not work, due to
  853.     some areas that are initially unused but arc used later. If you experience
  854.     problems where the system functions properly at first, and then has
  855.     problems later, use this instruction and thell check the areas specified by
  856.     the QEMM.COM ANALYSIS report.
  857.  
  858.   O NOSHADOWRAM, (NOSH), doesn't use Shadow RAM. PCs with the
  859.     Chips & Technologies 386 chip set or NEAT chip set put the 384K of
  860.     reserved memory in low memory with an 1/0 port-sclcctable mcthod
  861.     of getting at some of it. QEMM automatically detcrmines if your PC has
  862.     this capability. If it does not work, it may be that the NOSH paramcter
  863.     iS necessary.
  864.  
  865.   O NOSORT, (NS), specifies that memory should not be sortcd by speed.
  866.     QEMM normally tests the speed of all conventional memory and all
  867.     available extended memory, and uscs the fastc st memory first. Using
  868.     NOSORT forces QEMM to usc the memory in the order it finds it. The
  869.     sorted memory is used to replacc the initial 64()K convclltic)nal mcmory,
  870.     QEMM code and page tables, fill the vidco area, ROM mapping, RAM
  871.     filling and expanded memory. QEMM gcts its memory starting from the
  872.     highest memory address possible for the amount specified in MEMORY
  873.     (with a default of all). If convl~ntional mcmory is remapped into faster
  874.     memory, the initial state ON is forced and cannot be overridden.
  875.  
  876.   O NOTOPMEMORY, (NT), doesn't look for top mcmory. Some PCs put
  877.     384K of memory just below the top of the 16 megabyte address space
  878.     (384K below). QEMM.SYS automatically looks thcre to dc termine if
  879.  
  880.  
  881. 19   CHAPTER 3: THE QEMM.SYS PROCRAM
  882.  
  883.     there is any memory. If there is memory, QEMM.SYS will make it avail-
  884.     able for use. Sometimes a conflict occurs when QEMM.SYS looks at tht
  885.     top of the memory spacc, perhaps becausc sometl~ g is already using
  886.     that area or memory, or perhaps becausc the hardwarc design of thc
  887.     computer does not like having softwarc attempt to acccss this arcas. In
  888.     these cases, NT instructs QEMM.SYS to not usc (or look for) any
  889.     memory at the top of the memory spact~. If your computer hallgs whe
  890.     it boots, use the NT instmction.
  891.  
  892.   O NOVIDEOFILL, (NV), specifies that the memory arca from A()OO to
  893.     B7FF is not to be filled with memory. This option is only mt~aningful on
  894.     monochrome and CGA l'Cs. On thcse systems QEMM will add
  895.     memory from 640K (AO()O) to the bottom of the video adaptcr card
  896.     (either BOOO for monochromc or B8()() for CGA) alld adjust thc memory
  897.     size of DOS accordingly.
  898.  
  899.   O NOXBDA, (NX), specifies that QEMM should not movc thc cxtended
  900.     BIOS data area. On machines that havc onc, QEMM.SYS automatically
  901.     moves the eXtended BIOS Data Arca (XBDA), whicll is normally at
  902.     639K, into the addresses used by QEMM.SYS. QEMM.SYS docs this be-
  903.     cause the XBDA presents an obstacle to propcr memory managcmellt. It
  904.     is possible, however, that a program would (crroneously) assumt~ that
  905.     the XBDA is at 639K. When this occurs, the NX instruction disablcs this
  906.     feature. If a program whicll is running on a PS/2 model 80 or othtr l'C
  907.     with an XBDA, encountcrs difficulty, the NX instruction may remcdy
  908.     the difficulty.
  909.  
  910.   U NOXMS instructs QEMM not to be an extended mcmory managcr. Nor-
  911.     mally QEMM provides extended memory specificatioll (XMS) servicts.
  912.  
  913.   O OLDDV, (ODV), spccifies that QEMM should bc compatiblc with
  914.     DESQview 1.3 and 2.()(). This results in QEMM USillg 4K to 8K morc Coll-
  915.     ventional memory. DESQview 2.01 alld above do not rcqUire this
  916.     parameter.
  917.  
  918.   O TASKS=, (TA), sets the number of interllal QEMM.SYS data structurcs,
  919.     used when QEMM.SYS handlts interrupts out of protcctcd modc. Thcrc
  920.     are 16 TASKS by default. Each TASK requircs ~84 bytcs of cxtellded
  921.     memory.
  922.  
  923.   O UNUSUAL8042, (U8), specifies that the computer has a ''noll-stalldard
  924.     8042 keyboard controller. If setting QEMM.SYS to ON or m~ g
  925.     DESQview disables the kcyboard thell the UNUSUAL8042 switch
  926.     should be specified.
  927.  
  928.   O UNUSUALEXT, (UX), tells QEMM that tht~ metllod of determinill~ tht
  929.     amount of extended memory is noll-stalldard. If QEMM hall~s at boot
  930.     time, this switch could htlp. This switch sometimt~s makcs
  931.     QEMM.COM's Memory report on cxtcndcd mcmory inaccuratc.
  932.  
  933.  
  934. 20   CHAPTER 3: THE QEMM.SYS PROGRAM
  935.  
  936.   This chapter describes the features of the QEMM.COM program. The pro-
  937.   gram has two purposes. You use QEMM.COM to change the modc (state) of
  938.   QEMM to ON, OFF or AUTO. You also use QEMM.COM to report status in-
  939.   formation about QEMM and report information about your first megabytc of
  940.   memory. QEMM.COM displays first meg information in cither map or list
  941.   format. The information displayed by QEMM.COM is the same as that dis-
  942.   played by Quarterdeck's Manifest program for the QEMM-386 catcgory.
  943.  
  944.   QEMM.COM commands consist of QEMM followed by a command linc
  945.   parameter. If the command line parameter has a long name, you can cnter
  946.   an abbreviation instead of the name. This abbreviation is shown in parcn-
  947.   theses following the parameter name.
  948.  
  949.   There are two command line paramcters that givc you assistancc:
  950.  
  951.   O ? Iists all the namcs and abbreviations of all QEMM.COM command
  952.     line parameters.
  953.  
  954.      Help displays the namc and a one linc description about each parameter.
  955.      To enter these commands:
  956.      ∙ Type QEMM ? and press ~, or
  957.      ∙ Type QEMM HELP and press ~
  958.  The information requested is displayed on the screen.
  959.   Two command line paramctcrs control messages displayed after a
  960.   QEMM.COM command is entered. These are:
  961.  
  962.   O NOPAUSEONERROR (NOPE) instructs QEMM.COM not to display
  963.     the message, "Press any key to continue, ESC to abort". This message is
  964.     normally displayed when you enter a wrong QEMM.COM command
  965.     line parameter.
  966.  
  967.   U PAUSE instructs QEMM.COM to pause for a key before execllting a
  968.     command. It also may be uscd to prevent information from scrolling off
  969.     the display.
  970.  
  971.   One command linc parameter controls how QEMM.COM's reports are dis-
  972.   played on the screen:
  973.  
  974.   ll MAP instructs QEMM.COM to display its report in a map format.
  975.  
  976.   This command line parameter is a modificr and should be added to thc
  977.   QEMM.COM command line when necded. For example, to display the
  978.   QEMM.COM Access report as a map:
  979.  
  980.  ∙Type QEMM ACCESSED MAP and press ~.
  981.    The default format instructs QEMM.COM to display its reports as a list.
  982.  
  983.  
  984. 21   CHAPTER 4: THE QEMM.COM PROGRAM
  985.  
  986.      QEMM-386 watches what memory is accessed by programs--so that
  987.      QEMM.COM can at any time display a report about what high memory has
  988.      been accessed and what has not been. QEMM.COM also can make an
  989.      analysis as to what additional memory you can use to load TSR's, drivers,
  990.      and DOS resources in high memory.
  991.  
  992.      To give you control over when QEMM.COM begins watching high memory
  993.      to determine what memory is accessed, QEMM.COM has a command line
  994.      parameter called RESET.
  995.  
  996.      O RESET resets the state of memory to unaccessed.
  997.  
  998.      RESET is useful to use before running a program, so that you can determine
  999.      which areas of high memory are accessed by a specific program.
  1000.  
  1001. I~S There may be times when you wish to change the current mode of QEMM.
  1002.     The current mode controls whether QEMM puts the system into virtual 8086
  1003.     mode and how expanded memory should be handled. You can set the cur-
  1004.     rent mode to AUTO, ON, or OFF.
  1005.  
  1006.      O AUTO (AU) specifies that QEMM should turn ON when a program
  1007.        needs expanded memory.
  1008.  
  1009.      O ON specifies that expanded memory is available and the processor is in
  1010.        virtual 8086 mode.
  1011.  
  1012.      O OFF specifices that expanded memory is not available and the processor
  1013.        is in real mode.
  1014.  
  1015.      The mode forces ON when conventional or video memory is filled, high
  1016.      RAM or ROMs are mapped, conventional memory is sorted, or some ex-
  1017.      panded memory is in use.
  1018.  
  1019.      To change the current mode to ON:
  1020.  
  1021.     ∙Type QEMM ON and press ~
  1022.  
  1023.      The mode is then changed. You can change the mode to OFF or AUTO in the
  1024.      same way you changed the mode to ON.
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.    22   CHAPTER 4: THE QEMM.COM PROGRAM
  1039.  
  1040.   The two LOADHI programs, (LOADHI.COM and LOADHI.SYS) enable you
  1041.   to load TSRs, drivers, and DOS resources into available regions of high RAM.
  1042.   Your high memory is transformed into higll RAM by QEMM.SYS's RAM
  1043.   parameter. If you have run the Optimize program this has been done for you.
  1044.   Check your CONFIG.SYS file for the QEMM statement and be sure the RAM
  1045.   parameter is present. If not, refer to Chapter 3 page 13.
  1046.  
  1047.   This chapter explains how and when the LOADHI programs may be used,
  1048.   and describes the command line switches available. These switches help you
  1049.   determine and modify the effectiveness of LOADHI in freeing up convention-
  1050.   al memory. Freeing up this memory may enable you to:
  1051.  
  1052.   O run programs that would not fit in memory before,
  1053.  
  1054.   O add TSRs you've been doing without,
  1055.  
  1056.   O speed up memory-starved programs that no longer need to go to disk for
  1057.     their data,
  1058.  
  1059.   O add DOS resources to improve system response time and program effec-
  1060.     tiveness, and
  1061.  
  1062.   O increase the memory available to applications running in DESQview.
  1063.  
  1064.   The LOADHI programs are very effective with or without customization by
  1065.   you. However, it is important to note that if LOADI 11 is unable to make use of
  1066.   high RAM for a particular program or a DOS resource, it will use convention-
  1067.   al memory instead. Thus, your programs and DOS resources are available for
  1068.   use whether they were relocated or not.
  1069.  
  1070.   In order to use these two programs effectively, you need high RAM. Tn this
  1071.   chapter, it is assumed that QEMM has mapped available memory addresses
  1072.   with memory. If this is not the case, you may wish to install and setup QEMM
  1073.   as described in Chapter 2, Installation.
  1074.  
  1075.   Both LOADHI.SYS and LOADHI.COM load programs into high RAM. You
  1076.   use LOADHI.SYS to load device drivers with an appropriate DEVICE= state-
  1077.   ment in your CONFIG.SYS file. You use LOADHI.COM to load programs
  1078.   either from COMMAND.COM'S command line or from within your
  1079.   AUTOEXEC.BAT file. Both LOADHI programs support the same set of com-
  1080.   mand line options (switches) which let you alter the way LOADHI normally
  1081.   allocates and uses high RAM. These switches are described more fully on
  1082.   page 34, LOADHI Options.
  1083.  
  1084.   In addition, LOADHI.COM can be executed from the command line at any
  1085.   time to give you a listing of your current usage of high RAM. The following
  1086.   section describes this listing. It defines key terminology used in this chapter.
  1087.   And it is also the starting point for you, if and when you need to employ
  1088.   LOADHl's command line options.
  1089.  
  1090.  
  1091. 29   CHAPTER 5: THE LOADHI PROGRAMS
  1092.  
  1093.   You display the LOADHI report by running LOADHI from the command
  1094.   line without specifying any command line option or program file to load:
  1095.  
  1096. ∙Type LOADHI and press ~J.
  1097.  
  1098.   The LOADHI report, shown below, describes what higll RAM is in use and
  1099.   still available, the amount of high RAM used, and the names of the
  1100.   programs or DOS resources using the memory. It also shows you the
  1101.   memory address range in use by each block withill a region.
  1102.  
  1103.   As described in Chapter 2, QEMM locates and maps high memory areas into
  1104.   high RAM. These memory areas may be scattered throughout the high
  1105.   memory area due to the presence of BIOS and system ROM and RAM
  1106.   memory already in use by peripheral adapters. Each contiguous area of
  1107.   memory converted into high RAM is referred to as a region. Each region is
  1108.   given a number. Memory is allocated from a region in blocks. These regions
  1109.   may vary in size. Each time you load something into high RAM, LOADHI al-
  1110.   locates a block of memory from one of these regions. That block shows up in
  1111.   the list for that region and the region's available size and memory area is
  1112.   reduced accordingly.
  1113.  
  1114.   However often you call upon LOADHI to populate high RAM, there will
  1115.   never be more or less regions available (barring a fundamental change in
  1116.   your hardware, such as adding or rcmoving a peripheral adapter card). The
  1117.   number of blocks listed for a given region will, however, increase as LOAD-
  1118.   Hl uses this memory.
  1119.  
  1120.   If you display the LOADHI report before you have loaded TSR's or drivers
  1121.   in high RAM, you can see the number of regions found and mapped, the
  1122.   high memory address ranges, and the size of each region. Each region is
  1123.   marked as Available in the status column. This report serves as an excellent
  1124.   baseline for planning the best use of high RAM. The sum total of the regions'
  1125.   sizes gives you the upper limit to the conventional memory that can be
  1126.   saved by using LOADHI.
  1127.  
  1128.  
  1129.  
  1130.  
  1131.            C)loadhi
  1132.  
  1133.             Region      ~rea      Size   Status
  1134.                      8000 E00~    0.1K   llsed ~IPX)
  1135.                      E007 E0hC    Z.8K   Used (FILES)
  1136.                      E0EE E4~F     ISK   Used ()PX)
  1137.                     E4E0 ~ E7FZ    l3K   60~J l~hle
  1138.  
  1139.             Z       C534 -- C53~  0 IK   Used (llOUSE)
  1140.             Z        C53E C6~    4 8K   IJsed (8UFFEES)
  1141.  
  1142.             Z       C8E7 ~ JZZ6   9377K  Used (nOlJSE)
  1143.  
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149. 30   CHAPTER 5: THE LOADHI PROGRAMS
  1150.  
  1151.   You use the LOADHIISYS program when you want to load a device driver
  1152.   into high RAM. Device drivers are essentially extensions to DOS which DOS
  1153.   will load on system startup as it processes your CON FIG.SYS file.
  1154.  
  1155.   Any statement in your CONFIG.SYS file which begins witll the keyword
  1156.   DEVICE= instructs DOS to load the device driver which is specified following
  1157.   that keyword. Some common devices are memory managers, add-on
  1158.   peripheral device drivers, such as a disk drive or a mouse, and extensions to
  1159.   existing devices, such as the ANSI.SYS driver supplied with DOS that some
  1160.   programs use to address the video display.
  1161.  
  1162.   With the exception of QEMM.SYS, which LOADHI relies upon, any device
  1163.   driver that you currently use or anticipate using in the future is a candidate to
  1164.   consider loading into high RAM. Occasionally you may find a device driver
  1165.   that is sensitive to its location in memory and which will not work properly, if
  1166.   at all, when relocated. Other device drivers may require that you experiment
  1167.   with the customization capabilities of LOADHI. However, for the most part
  1168.   you will encounter little difficulty in using LOADHI.SYS with your device
  1169.   drlvers.
  1170.  
  1171.   Since ANSI.SYS is available on every DOS system, vve use it in the example
  1172.   below to show how you take advantage of LOADHI.SYS In this example, the
  1173.   sample CONFIG.SYS file has a statement which loads QEMM.SYS, as well as
  1174.   the following statement loading ANSI.SYS:
  1175.  
  1176.      DEVICE=C:\DOS\ANSI.SYS
  1177.  
  1178.   This statement instructs DOS to load the file ANSI.SYS which can be found itl
  1179.   the DOS subdirectory of disk drive C.
  1180.  
  1181.   To load ANSI.SYS in high memory, you must instruct DOS to load the file
  1182.   LOADHI.SYS instead of ANSI.SYS. L.OADHI will take care of loading the
  1183.   ANSI.SYS file. You do this by modifying the CONFIG.SYS statement so that it
  1184.   reads:
  1185.  
  1186.      DEVICE=C:\QEMM\LOADHI.SYS C:\DOS\ANSI.SYS
  1187.  
  1188.   NOTE: Editing an existing DEVICE= statement simply displaces the device
  1189.   driver specification on the statement line. If thc devicc driver you want to relo-
  1190.   cate takes command line switches of its own (the example ANSl.SYS has
  1191.   none), and you make use of any of these options, they should be retained in
  1192.   the edited statement also.
  1193.  
  1194.   This easy modification to your CONFIG.SYS file represellts the simplest way
  1195.   to take advantage of LOADI lI's features. For many systems, this will be c~de-
  1196.   quate. When you need more control over the placement of device drivers or
  1197.   encounter difficulty in relocating a device driver, you should see the LOADHI
  1198.   switches section of this chapter.
  1199.  
  1200.  
  1201.  
  1202.  
  1203. 31   CHAPTER 5: THE LOADHI PROCRAMS
  1204.  
  1205.   You use LOADHI.COM to load TSR (Terminate and Stay Residtnt) programs
  1206.   in high memory or to relocate DOS resources (such as disk buffers and file
  1207.   handles) to high memory. The TSRs you customarilv use are probably foulld
  1208.   in your AUTOEXEC.BAT file. DOS resources arc allocated, if at all, from your
  1209.   CONFIG.SYS file. Other TSRs which you use only occassionally may be
  1210.   loaded directly from the DOS prompt (or by way of a batcll file).
  1211.  
  1212.   This section first explains how to use LOADHI.COM to load your TSRs into
  1213.   high RAM. It then briefly describes how you may use LOADHI.COM in Coll-
  1214.   junction with QEMM-386's programs (BUFFERS.COM, FILES.COM, etc.) thclt
  1215.   place DOS resources in high RAM. Since these programs also perforlll other
  1216.   functions, they are more fully described in Chapter 6, The DOS Rcsource
  1217.   Programs.
  1218.  
  1219.   In describing how to use LOADHI.COM, we usc, as an exalllple TSR, a pro-
  1220.   gram called DOITALL. This imaginary program resides in a disk directory
  1221.   called UTILS and has several command line options whicll modify its be-
  1222.   havior. Our example shows two of these options: thc /m option to force the
  1223.   program to display in monochrome and the /r option wllicll instructs it to
  1224.   stay resident (it has a stand-alolle mode) and available to be "popped up" on
  1225.   demand. To run DOITALL, the following statemellt nec~ls to be executtd:
  1226.  
  1227.       C:\UTILS\DOITALL /m Ir
  1228.  
  1229.   This statement could be present in your AUTOEXEC.~AT file, in some other
  1230.   batch file you execute as needed, or a statement you ellter from the DOS
  1231.   prompt whenever you want the program in memory. To mll DOITALII out of
  1232.   high RAM, the above statement nceds to be change-l so thLlt it executt s LOAD-
  1233.   HI first:
  1234.  
  1235.       C:\QEMM\LOADHI C:\UTILS\DOITALL /m Ir
  1236.  
  1237.   Notice that the statement that executed the program is now a parameter to tlle
  1238.   program LOADHI. All that we have done is insert the drivc and directory
  1239.   path for LOADHI and made LOADtll the program to be loaded. LOAL I 11 in
  1240.   turn loads and executes DOITALL in higll RAM. DOITAI..I. still sees its
  1241.     parameters when it initiali~es. In many cases this simple cllange to your sys-
  1242.     tem is sufficient to free up a significant amount of melllory an-l still elljoy the
  1243.     benefits of your TSR programs.
  1244.  
  1245.     There are also several programs included with QEMM~ wllicll are meallt to
  1246.     be used in conjunction with LOADHI.COM. Thtse progrLlms ar-                          I
  1247.     BUFFERS.COM, FILES.COM, FCBS.COM and LASTDRIVE.COM. As their                         ~l
  1248.     names suggest, they allow you to allocate and use the associate(l DOS resour-
  1249.     ces out of high RAM. If your CONFIG.SYS file is currelltly allocatillg any of
  1250.     these resources, the use of LOADHI and these utilities frees up IllUCIl of the
  1251.     conventional memory now devoted to them.
  1252.  
  1253.     Each of these programs allocate memory before they ter~ ate. If thev are in
  1254.     high RAM, the memory they allocate comes from higll RAM. Altho~lgll th-~s~
  1255.  
  1256. 32     CHAPTER 5: THE LOADI!I PROGRAMS
  1257.  
  1258.   programs are fully described in the Chapter 6, The DOS Resource l'rograms, a
  1259.   typical example of the use of each one with LOADHI should give you an idea
  1260.   about their use. These examples do omit the details about the disk and sub-
  1261.   directory location of the programs.
  1262.  
  1263.   Example l-Allocate buffers in high memory:
  1264.  
  1265.     Before LOADHI.COM:
  1266.       CONFIG.SYS file:    BUFFERS=20
  1267.       AUTOEXEC.BAT file:
  1268.     After LOADHI.COM:
  1269.       CONFIG.SYS file:    BUFFERS=l
  1270.       AUTOEXEC.BAT file:  LOADHI BUFFERS=20
  1271.  
  1272.   Example 2-Add 10 file handles:
  1273.  
  1274.     Before LOADHI.COM:
  1275.       CONFIG.SYS file:    FILES=20
  1276.       AUTOEXEC.BAT file:
  1277.     After LOADHI.COM:
  1278.       CONFIG.SYS file:    FILES=10
  1279.       AUTOEXEC.BAT file:  LOADHI FILES +10
  1280.  
  1281.   Example 3-LoadFCBS in high memory:
  1282.  
  1283.     Before LOADHI.COM:
  1284.       CONFIG.SYS file:    FCB5=8,2
  1285.       AUTOEXEC.BAT file:
  1286.     After LOADHI.COM:
  1287.       CONFIG.SYS file:    FCB5=1,0
  1288.       AUTOEXEC.BAT file:  LOADHI FCB5=8,2
  1289.  
  1290.   Example 4-Increase last drive to include drive letter G:
  1291.  
  1292.     Before LOADHI.COM:
  1293.       CONFIG.SYS file:    LASTDRIVE=G
  1294.       AUTOEXEC.BAT file:
  1295.     After LOADHI.COM:
  1296.       CONFIG.SYS file:    LASTDRIVE=D
  1297.       AUTOEXEC.BAT file:  LASTDRIVE=G
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309. 33   CHAPTER 5: THE LOADHI PROCRAMS
  1310.  
  1311. s     There are several command line options for LOADHI which can help you
  1312.       make better use of your high RAM if you find that the simple, straightforward
  1313.       approach is inadequate.
  1314.  
  1315.       The command line options may help if you have trouble loading one or more
  1316.       of your programs into high RAM. Some command line options are to be used
  1317.       if you have more candidates for high RAM than seem to fit. Another com-
  1318.       mand line option lets you specify a particular region to use or exclude. There
  1319.       is an option that will allow you to find out how much memory a program real-
  1320.       ly needs, when that isn't clear either from the program documentation, or
  1321.       from a guess-timate based on its file size.
  1322.  
  1323.       The LOADHI command line has the following format:
  1324.  
  1325.          LOADHI [loadhi-opts] target-program [target-program-opts]
  1326.  
  1327.       The brackets in the statement indicate that the item specified is optional. The
  1328.       target program represents the device driver or other program you are loading.
  1329.       The last item shows the placement of options for the target program if there
  1330.       are any.
  1331.  
  1332.       Now that we know where LOADHl's options belong on the command line,
  1333.       we also need to know what an option looks like.
  1334.  
  1335.       O A LOADHI option always begins with a slash (/).
  1336.  
  1337.       O Following the slash is the option name, or its abbreviation.
  1338.  
  1339.       O If the option can take a value, then the next character must be a colon (:)
  1340.         followed by the value.
  1341.  
  1342.       One LOADHI option is LARGEST, which optionally can take a value. You can
  1343.       indicate this option in any of the following ways:
  1344.  
  1345.           / LARGEST
  1346.           /L
  1347.           /LARGEST:2
  1348.           / L:2
  1349.  
  1350.       In all, there are thirteen options you may specify on a LOADHI command
  1351.       line, each of which are described below. Combinations of two or more options
  1352.       may be specified to give you greater control over the use of high RAM. These
  1353.       paragraphs show: the full option name followed by its abbreviation. If a value
  1354.       is called for that is optional it is enclosed in square brackets ([ ]). The options
  1355.       are:
  1356.  
  1357.       O /BESTFIT or /B instructs LOADHI to use the smallest block of memory in
  1358.         which the program fits. Using BESTFIT tends to reserve larger regions for
  1359.         your larger programs. See also SIZE and GETSIZE.
  1360.  
  1361.      U /HAPPIEST or /H instructs LOADHI to use the smallest block of memory
  1362.        in which the program will fit, provided that it does not terminate with an
  1363.  
  1364.    34       CHAPTER 5: THE LOADHI PROGRAMS
  1365.  
  1366.     error. Both device drivers and TSRs return after they are initialized, and
  1367.     the LOADHI programs can determine if the load was successful. It it was
  1368.     not, then LOADHI will try again with the a larger area until the program
  1369.     exits successfully. If necessary the program will be loaded in conventional
  1370.     memory.
  1371.  
  1372.   O /REGION:n or /R:n instructs LOADHI to load the program into the
  1373.     region numbered "n".
  1374.  
  1375.   O /LARGEST[:n] or /L[:nl instructs LOADHI to load the program into the
  1376.     largest region or one particular region out of several large regions avail-
  1377.     able. The number indicated by n indicates which of these to use. For in-
  1378.     stance the option /L:2 specifies the second largest region.
  1379.  
  1380.   O /SMALLEST[:n] or /S[:n] instructs LOADHI to load the program into the
  1381.     smallest region or one particular region out of several small regions avail-
  1382.     able. The number indicated by n indicates which of these to use. For in-
  1383.     stance the option /S:2 specifies the second smallest region.
  1384.  
  1385.   O /EXCLUDEREGION:n or /XR:n instructs LOADHI to not use region num-
  1386.     ber n to load the target program.
  1387.  
  1388.   O /EXCLUDELARGEST[:n] or /XLl:nl instructs LOADHI to not use the
  1389.     largest region (or the Nth largest region) to load the target program.
  1390.  
  1391.   O /EXCLUDESMALLEST[:n] or /XSl:n] instructs LOADHI to not use the
  1392.     smallest region (or the Nth smallest region) to load the target program.
  1393.  
  1394.   O /GETSIZE[:f] or /GS[:f] allows you to determine precisely the amount of
  1395.     memory a program requires. With this option LOADHI loads the program
  1396.     you specify and reports two memory usage values. The first value tells
  1397.     you how much memory (in bytes) the program required to load and ini-
  1398.     tialize. The second value tells you the amount of memory the program
  1399.     has permanently retained for its own use. You use this option to help you
  1400.     custom fit your device drivers and TSRs into high RAM.
  1401.  
  1402.     The optional value f should be a file name. When a file name is present,
  1403.     LOADHI writes the program name and the two size values into this file
  1404.     so that you may examine it later. If the file name you specify already ex-
  1405.     ists, LOADHI appends the information to this file. By systematically using
  1406.     the GETSIZE option with a file name you can compile the memory re-
  1407.     quirements of all the programs you wish to relocate to high RAM. This is
  1408.     the procedure that the Optimize program uses.
  1409.  
  1410.     NOTE to DESQview users: LOADHI /GETSIZE can be used to help you
  1411.     determine how much memory a program requires to run, so you can
  1412.     properly set an appropriate memory size. Simply run the program you are
  1413.     interested in in a maximum memory window with LOADHI /GS. Do
  1414.     what you would normally do in the program. When you exit it, LOADI 11
  1415.     displays the amount of memory that the program used. That number (in-
  1416.  
  1417.  
  1418. 35   CHAPTER 5: THE LOADHI PROGRAMS
  1419.  
  1420.      creased slightly) can be used for the memory configuration for that pro-
  1421.      gram.
  1422.  
  1423.   Cl /SIZE:nnnn or /SIZE:nnnnK instructs LOADHI to allocate from a block
  1424.      that will best fit the value nnnn. This number can be expressed in bytes
  1425.      (i.e 4096) or in kilobytes (i.e. 4K). The number you supply may come from
  1426.      the report issued by the GETSIZE option, or a number that you have
  1427.      determined by other means. In either case this number must represent the
  1428.      amount of memory the program nceds to successfully initialize.
  1429.  
  1430.   O /NOLO or /NL instructs LOADHI to not load the specified program at all
  1431.      if it will not fit in a high RAM region. This allows you to specify addition-
  1432.      al drivers, TSRs or DOS resources, that you would like to use, but only if
  1433.      they will be placed in high RAM
  1434.  
  1435.   O /LO or /LO instructs LOADHI to unconditionally use conventional
  1436.      memory instead of high RAM. You can use this option to temporarily
  1437.      change LOADHI statements in CONFIG.SYS or AUTOEXEC.BAT files
  1438.      without removing them completely.
  1439.  
  1440.   O /TERMINATERESIDENT or /TSR instructs LOADHI to terminate as a
  1441.      TSR, leaving a small stub of code (about 100 bytes) resident. This option is
  1442.      only useful if you are using LOADHI in combination with DOS 4's IN-
  1443.      STALL command in CONFIG.SYS. In this case, the effect of this option is
  1444.      simply to suppress an error message issued by DOS indicating a failure to
  1445.      load a TSR when in fact LOADHI successfully relocated the program.
  1446.  
  1447.   Finally, as a quick reminder, LOADHI will also respond to the following op-
  1448.   tions on its command line:
  1449.  
  1450.   :0 /NOPAUSEONERROR or NOPE instructs LOADI 11 not to pause on error.
  1451.  
  1452.   O /PAUSE instructs LOADHI to pause while parsing commallds.
  1453.  
  1454.   O /HELP displays the LOADHI help scree
  1455.  
  1456.   1_1 /? Iists all LOADHI command svvitclles.
  1457.  
  1458.  
  1459.  
  1460.  
  1461.  
  1462.  
  1463.  
  1464.  
  1465.  
  1466.  
  1467.  
  1468.  
  1469.  
  1470.  
  1471. 36   CHAPTER ~: THE LOADHI PROGRAMS
  1472.  
  1473.  The DOS Resource Programs let you manage the data structures used by
  1474.  DOS. You may use thesc programs by tllemselves, either to determine the cur-
  1475.  rent memory used or to add resources out of conventional memory. Their use
  1476.  with the LOADHI programs will benefit you the most.
  1477.  
  1478.  DOS always allocates memory for each resource. The amount allocated varies
  1479.  according to the DOS version. Earlier versions of DOS do not have support for
  1480.  some of the resources. Users increase the memory for a resource by including
  1481.  a statement in their CONFIG.SYS file. DOS reads and processes this file
  1482.  during its boot sequence.
  1483.  
  1484.  This chapter discusses each of the DOS resource allocation programs. Each
  1485.  DOS resource is described briefly. Changes or additions to your CONFIG.SYS
  1486.  and AUTOEXEC.BAT files are given where needed. This information should
  1487.  also help those of you who are taking advantage of increasing these DOS
  1488.  resources for the first time.
  1489.  
  1490.  The programs described in this chapter are all used in mucll the same way.
  1491.  Running the program without any parameters gives you a report on the cur-
  1492.  rent memory allocation for the resource. All programs accept a numeric
  1493.  parameter which increases the memory available to DOS for that resource.
  1494.  And each allocates this additional memory from high RAM when you use
  1495.  LOADHI.
  1496.  
  1497.  To use high RAM effectively, you c11ange CONFIG.SYS to reduce the memory
  1498.  allocation. You then c~lange AUTOEXEC.BAT to increase the resource.
  1499.  
  1500.  The parameters these programs use share a common syntax. A number, or a
  1501.  number preceded by an equals sign (nn or =nn), gives the total number of
  1502.  data structures needed. A number preceded by a plus sign (+nn), adds that
  1503.  many more structures. All the programs add memory; you cannot use them to
  1504.  reduce the memory allocated to a resource.
  1505.  
  1506.  The DOS buffers resource can improve disk 1/0 response times. DOS always
  1507.  has some number of disk sector buffers allocated. The default number varies,
  1508.  according to the version of DOS, from 2 to 15 buffers. You can add more buf-
  1509.  fers with a statement in your CONFIG.SYS file. For example, the statement,
  1510.  BUFFERS=30, allocates space for a total of thirty sector buffers. Each sector
  1511.  buffer requires 528 bytes of memory.
  1512.  
  1513.  NOTE: Don't use BUFFERS.COM in DOS 4.0 systems. The structure of the
  1514.  disk buffers is different.
  1515.  
  1516.  Without the services of BUFFERS with LOADHI, buffers are allocated out of
  1517.  conventional memory. Adding buffers can improve program response time
  1518.  but reduces the memory available to your application.s. Also, one application
  1519.  may benefit from sector buffering while another is unaffected. Much depends
  1520.  upon how they access the files they use. Having your disk buffers allocated
  1521.  out of high RAM can, therefore, keep the benefits of disk buffering and avoid
  1522.  the associated penalty.
  1523.  
  1524. 37   CHAPTER 6: THE DOS RESOURCE PROGRAMS
  1525.  
  1526.   You can display a report of the number of buffers now allocated:
  1527.  
  1528. ∙Type BUFFERS and press ~.
  1529.  
  1530.   The prograrn responds by reporting " BUFFERS=30 now".
  1531.  
  1532.   To load 30 buffers in High RAM:
  1533.  
  1534. ∙Type LOADHI BUFFERS +30 and press ~.
  1535.  
  1536.   The program responds by reporting:
  1537.  
  1538.   BUFFERS=30 before
  1539.   30 buffers added
  1540.   BUFFERS=60 now
  1541.  
  1542.   If you have a BUFFERS=statement in your CONFIG.SYS file, we recommend
  1543.   loading your buffers in high memory. Let's assume for our example that you
  1544.   have previously determined that you require 40 disk buffers, so CONFIG.SYS
  1545.   file now contains the statement, BUFFERS=40. To load these in high memory:
  1546.  
  1547. ∙ First change the BUFFERS statement in your CONFIG.SYS to
  1548.   BUFFERS=1.
  1549.  
  1550.   This specifies a small number of buffers to override any default DOS alloca-
  1551.   tion. If you simply remove this statement from CONFIG.SYS you may end up
  1552.   with as many as fifteen disk buffers allocated out of conventional memory.
  1553.  
  1554. ∙ Next change your AUTOEXEC.BAT file so the first statement is
  1555.   LOADHI BUFFERS=40 or +39.
  1556.  
  1557.   NOTE: Make it the first statement so other AUTOEXEC.BAT statements can
  1558.   take advantage of disk buffering.
  1559.  
  1560.   DOS uses the files resource to keep track of disk files while they are open. The
  1561.   files resource is a data structure requiring about 53 bytes for each open file.
  1562.   This data structure is closely related to a DOS file handle, so that term is used
  1563.   here.
  1564.  
  1565.   The default number of file handles DOS allocates is small and seldom enough.
  1566.   Many of the larger applications require more. A program such as DESQview,
  1567.   which allows multiple programs to be running concurrently, requires at least
  1568.   this much. Depending on the active applications, DESQview may require even
  1569.   more. It is quite likely that you already have a FILES= statement in your CON-
  1570.   FIG.SYS file. FILES=20 is a common setting.
  1571.  
  1572.   You can display a report of the number of files now allocated:
  1573.  
  1574. ∙Type FILES and press ~.
  1575.  
  1576.   The program responds by reporting "FILES=20 now".
  1577.  
  1578.   To add 20 files in high memory:
  1579.  
  1580. 3X   CHAPTER 6: THE DOS RESOURCE PROGRAMS
  1581.  
  1582. ∙Type LOADHI FILES +20 and press
  1583.   The program responds by reporting:
  1584.   FILES=20 before
  1585.   20 files added
  1586.   FILE5=40 now
  1587.  
  1588.   Whether you do or do not currelltly have a FILES= statcmellt in your
  1589.   CONFIG.SYS file, we recommend loading files in higll memory Let's aSSUllle
  1590.   for our example that you have previously determined that you require 3() files,
  1591.   so your CONFIG.SYS file now contaills the statemellt, Fll ES=30. To load
  1592.   FILES in high memory:
  1593.  
  1594. ∙Change the FILES statement in your CONFIG.SYS file to FILES=10.
  1595.  
  1596.   This statement allocates 10 file handles. This numbcr puts only a small burden
  1597.   on the use of conventional memory, while avoiding problems with certain ap-
  1598.   plications.
  1599.  
  1600. ∙Add the statement, LOADHI FILES=40 in your AUTOEXEC.BAT file.
  1601.  
  1602.   DOS uses the FCB resource to keep track of File Control Blocks (FCBs). Ver-
  1603.   sions of DOS prior to DOS 2.0 used FCBs exclusively to open and manage
  1604.   open disk files. Since DOS 2.0, the preferred method of filc access involves the
  1605.   use of file handles. Because many programs written before DOS 2.0 are still in
  1606.   use, the use of FCBs is still supported.
  1607.  
  1608.   Skip this section if you are not using Sl-lARE alld do not have an FCBS state-
  1609.   ment in your CONFIG.SYS file. Also, this resource is not available in DOS ver-
  1610.   sion 2 systems.
  1611.  
  1612.   The FCB management by DOS involves two numbers. The first number in-
  1613.   structs DOS to allocate memory for that many FCBs. The second number indi-
  1614.   cates how many of those FCBs should be protected when DOS needs to close
  1615.   an open FCB. Each FCB resource allocated requires about 53 bytes.
  1616.  
  1617.   NOTE: The FCB resource uses contiguous memory. When you add FCBs, a
  1618.   new block of memory for the entire table must be allocated. The memory used
  1619.   by the original table is not recovered.
  1620.  
  1621.   You can display a report of the number of files now allocated:
  1622. ∙Type FCBS and press ~.
  1623.   The program responds by reporting "FCBS=4,0 now".
  1624.   To add to add 4 more FCBs, with 2 additional FCBs protected.
  1625. ∙Type LOADHI FCBS +4~2 and press ~.
  1626.   The program responds by reporting:
  1627.  
  1628.  
  1629. 39   CHAPTER 6: THE DOS RESOURCE PROGRAMS
  1630.  
  1631.   FCBS=4,0 before
  1632.   4 FCBs added
  1633.   2 protected FCBs added
  1634.   FCBS=8,2 now
  1635.  
  1636.   If you currently have a FCBS= statement in your CONE11G.SYS file, we reco~
  1637.   mend loading FCBS in high memory. Let's assume for our example that you
  1638.   have previously determined that you require ~,2 FCBS, so your CONFIC..SYS
  1639.      file now contains the statement, FCBS=8,2. To load FCBS in l-igh memory:  I
  1640.  
  1641. ∙ Remove the FCBS= statement in your CONFIG.SYS
  1642. ∙ Add the statement, LOADHI FCBS 8,2, to your AUTOEXEC.BAT file.
  1643.   DOS uses the last drive resource to support both physical alld logical disk
  1644.   drives. Logical disk drives are useful if you use the vos SUBST program.
  1645.   Each drive entry in DOS' drive tablc requires about S(~ bytes.
  1646.  
  1647.   You can add drive table support using the numerical par~lmeters you'rt~ Seell
  1648.   throughout this section or you can set it using a drive letter.
  1649.  
  1650.   NOTE: The DOS drive table uses contiguous memory. Whell you add more
  1651.   drives, a new block of memory for the entire tablc m~lst be allocated. The
  1652.   memory used for the original drive table is not recovered.
  1653.  
  1654.   You can display a report of the number of files no~ allocated:
  1655. ∙Type LASTDRIVE and press ~.
  1656.   The program responds by reporting:
  1657.   LASTDRIVE=E now
  1658.   To load a new drive table in high RAM:
  1659. ∙Type LOADHI LASTDRIVE G and press ~.
  1660.   The program responds by reporting:
  1661.   LASTDRIVE=E before
  1662.   2 drives added
  1663.   LASTDRIVE=G now
  1664.  
  1665.   We recommend that you change your LASTDRIVE= st~temellt in CON-
  1666.   FIG.SYS so only your actual disk volumes are specified (For example,
  1667.   LASTDRIVE=D). If your hard disk is partitioned, tht~ drivt~ letter should cor-
  1668.   respond to the last partition. This minimizes tht~ "lost" melllory. Tht~ll load lo~i-
  1669.   cal drives in high memory. For example to add three loxicLll drives:
  1670.  
  1671. ∙Add the statement, LOADHI LASTDRIVE=+3, to your AUTOEXEC.BAT file.
  1672. 40      CHAPTER 6: THE DOS RESOURCE PRoGRAM~
  1673.  
  1674. The VIDRAM.COM program extends the conventional memory managed by
  1675. DOS by 96K if your system has an EGA or VCA video adapter card. Your rc
  1676. must also already have a full 640K of conventional memory alld the program
  1677. or programs you intend to execute with this additional memory must not ~ISe
  1678. graphics while VIDRAM is enabled. In othcr words, VIDRAM Call be of use
  1679. to you if you make use of large text based programs, such as dBASE IV, that
  1680. will be more responsive in a 736K machille.
  1681.  
  1682. VIDRAM is a standalone TSR. It does not need any expallded memory, ex-
  1683. tended memory or a memory manager (other than itsclf and DOS). If your
  1684. system has the necessary video RAM, VIDRAM will work equally well 011
  1685. 8088, 8086, 80286 and 80386 machincs. If you do have additional memory alld
  1686. a memory manager that can make this memory available to you, VIDRAM
  1687. may not be useful to you.
  1688.  
  1689. VIDRAM steals the video memory from the adapter KAM tl-at is used for
  1690. graphic pages. This memory is av~ilablc on ECA and VGA adapters, (not on
  1691. CGA or monochrome adapters) and lies just bcyond the ~4()K address bound-
  1692. ary. VIDRAM makes this memory available to DOS. DOS in turn will m~lke
  1693. the memory available to every program it loads. VIDRAM also intercepts
  1694. video requests and refuses all requests that would make use of this memory~
  1695. i.e. graphics operations.
  1696.  
  1697. If you routinely use both large text based programs and graphics programs,
  1698. you can turn the VIDRAM feature off and on as needed after you exit one pro-
  1699. gram and before you execute the other. (NOTE: VIDRAM canllot be turlled
  1700. on and off inside DESQview).
  1701.  
  1702. If you seldom use graphics programs you can mak- the best use of VIDRAM
  1703. if you simply load it into memory and turll it ON every time you power Up
  1704. your machine. To do this you need to create or modify your AUTOEXEC.BAT
  1705. file, adding the statement:
  1706.  
  1707.   VIDRAM ON
  1708.  
  1709. This brings VIDRAM into memory and makes the additiollal 9(~K of melllory
  1710. available to all of the applications you may run througllout the day.
  1711.  
  1712. The ON parameter on the command line is all option. VIDRAM hcls severlll
  1713. options which it will recogni7.e, including the options whicll all the prograllls
  1714. in the QEMM package support. In this sectioll, wllell all option is first Illell-
  1715. tioned, the alternate abbreviated form of th.' option will immediately follow it
  1716. and is enclosed in parantheses.
  1717.  
  1718. You will need to understand what these options do if:
  1719.  
  1720. l~ you want to know the status of VIDRAM
  1721.  
  1722. :~ you need to run graphics programs occassionally
  1723.  
  1724.  
  1725.           CHAPTER 7: THE VIDRAM PRo(,RAM
  1726.  
  1727.   1~ you have a second video adapter and monitor
  1728.  
  1729.   O you also have expanded or extended memory and a memory
  1730.     manager that also is managing the video RAM memory area
  1731.  
  1732.   To determine the current status of VIDRAM, you need to enter just the
  1733.   VIDRAM command (no option) from the DOS prompt:
  1734.  
  1735. ∙TYPE VIDRAM and press ~.
  1736.  
  1737.   The VIDRAM program reports whether or not VIDRAM is resident and
  1738.   enabled. For example, when VIDRAM is not resident, it reports:
  1739.  
  1740.      NOT Resident - Graphics enabled
  1741.   If VIDRAM is resident and turned on, then the following is displayed:
  1742.      Memory Extended to B800 - Graphics Disabled
  1743.   This shows you that DOS will see the additional 96K of memory (to
  1744.   hexadecimal address B800) and reminds you that graphic capabilities are not
  1745.   available.
  1746.  
  1747.   To turn the VIDRAM function OFF (OF), and return the 96K of memory for
  1748.   use by the graphics adapter, you would enter the following command from
  1749.   the DOS prompt:
  1750.  
  1751. ∙Type VIDRAM OFF and press ~.
  1752.  
  1753.   The VIDRAM program will respond with a display which shows that
  1754.   graphics are now enabled:
  1755.  
  1756.      Memory NOT Extended - Graphics Enabled
  1757.  
  1758.   There are two parameters you can use that inhibit graphics functions but
  1759.   which do not extend your memory. You use these when you have a memory
  1760.   manager that already is including this memory and you want to prevent
  1761.   graphics programs from using the memory.
  1762.  
  1763. ∙Type VIDRAM NOEGA and press ~.
  1764.   to prevent EGA requests from being honored.
  1765. ∙Type VIDRAM NOCGA and press ~.
  1766.   to prevent a~y graphics function (CGA through VGA).
  1767.   The last VIDRAM specific option is used to force the VIDRAM function ON
  1768.   in situations where VIDRAM would normally refuse to appropriate the video
  1769.   RAM memory. These situations occur when you have two monitors and two
  1770.   video adapters in your system, or when all or part of the video RAM is al-
  1771.   ready being managed by a resident memory manager.
  1772.  
  1773.  
  1774.  
  1775. 42   CHAPTER 7: THE VIDRAM PROGRAM
  1776.  
  1777.   This option is the OVERRIDE (OV or OR) option. It may not work well for
  1778.   you in either of these situations, for it depends upon what adapters may be in-
  1779.   volved or what memory management features you may already be using.
  1780.   You will simply have to determine for yourself VlDRAM's utility in this situa-
  1781.   tion.
  1782.  
  1783.   To use the OVERRIDE option, you would enter the following command from
  1784.   the DOS prompt:
  1785.  
  1786. ∙Type VIDRAM ON OVERRIDE and press ~.
  1787.  
  1788.   The VIDRAM program will respond with a display like the following ex-
  1789.   ample, which shows that memory has been extended and that graphics are
  1790.   now disabled.
  1791.  
  1792.    Memory Extended to BOOO - Graphics Disabled
  1793.  
  1794.   Notice also in this example, that VIDRAM has not made the entire 96K extent
  1795.   of video RAM available. The example was taken on a system with both a
  1796.   VGA and a monochrome video adapter present. Leaving enough video RAM
  1797.   to support both monitors in their text modes, VIDRAM was able to extend
  1798.   DOS' conventional memory by 64K (the memory from hexadecimal addresses
  1799.   AOOO to BOOO).
  1800.  
  1801.   Finally, as a quick reminder, VIDRAM will also respond to the following op-
  1802.   tions on its command line:
  1803.  
  1804.   1~ NOPAUSEONERROR (NOPE) tells VIDRAM to not pause on error.
  1805.   [~ PAUSE tells VIDRAM to pause while parsing commands.
  1806.   3 HELP displays the help screen for VIDRAM.
  1807.   l~ ? Iists all commands.
  1808.   You can use the LOADHI program (Chapter 5) with VIDRAM to make the
  1809.   resident portion of VIDRAM remain in higll RAM. VIDRAM resident in high
  1810.   RAM cannot, however, extend the memory To extend the mcmory, you must
  1811.   run VIDRAM a second time. For example:
  1812.  
  1813. ∙TYPE LOADHI VIDRAM ON and press
  1814. ∙TYPE VIDRAM ON and press ~.
  1815.   This allows the code that intercepts graphics requests to be in high RAM,
  1816.   while the memory management portion is in memory only briefly while it ex-
  1817.   tends or returns memory.
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824. 43   CHAPTER 7: THE VIDRAM PRoC,RAM
  1825.  
  1826.   This chapter describes two othcr QEMM programs, EMS2EXT and EMS,
  1827.   which give additional control over expanded mcmory. Thcsc two programs
  1828.   can be used separately or thcy can bc used together to give you some
  1829.   dynamic control over your cxtcnded memory allocation.
  1830.  
  1831.   If your system has EMS 4.0 expanded mcmory, but not extclldcd memory,
  1832.   you may want to use the EMS2EXT.SYS dcvicc driver supplicd with QEMM.
  1833.   EMS2EXT can supply expanded memory as extcnded memory to programs
  1834.   that access extcnded memory in a certain prcscribed ma~ cn Two SUCh
  1835.   programs are IBM's DisplayWrite and thc VDISK.SYS RAM disk utility sup-
  1836.   plied with DOS. Many disk cache utilities oftcn use extended mcmory in this
  1837.   way also.
  1838.  
  1839.   These and other programs can be used with EMS2EXT.SYS because they do
  1840.   not require that extendcd memory (memory abovc 1024K) be physically
  1841.   present, nor do they need to directly address this memory. They make
  1842.   demands upon this memory in a logical as opposed to a physical sense. And
  1843.   they access the contents of this memory througll request.s of a memory
  1844.   manager, which makes this memory available to the program. Programs
  1845.   which make use of extended memory in this way provide a performance
  1846.   boost over programs that rely on disk storage alonc, since the in-mcmory
  1847.   transfer is much faster.
  1848.  
  1849.   Programs that expect extended memory to be physically prcsent cannot
  1850.   make use of EMS2EXT. Quarterdeck's QEXT.SYS driver, uscd with
  1851.   DESQview, cannot use memory supplied by EMS2EXT.
  1852.  
  1853.   Because this logical or virtual memory capability cnhances a programs perfor-
  1854.   mance, you should have little difficulty in detcrmining which of your applica-
  1855.   tions support this memory. They will surely mention it. And, if your comple-
  1856.   ment of expanded memory lends itself to this use, you will want to makc this
  1857.   memory available to thesc programs.
  1858.  
  1859.   If you decide to use EMS2EXT you may also want to consider the relative
  1860.   speed of the various types of memory you have in your system. It is possible
  1861.   for there to be a significant speed differential betwcen these types of memory.
  1862.   EMS2EXT is capable of determining this difference and can allocate either
  1863.   slow memory or fast memory for use as extended memory.
  1864.  
  1865.   EMS2EXT is a device driver and therefore needs to be loaded when your sys-
  1866.   tem boots up. This requires a DEVICE= statement in your CONFIG.SYS file.
  1867.   When you have determined the amount of memory to ask EMS2EXT to
  1868.   manage as extended memory, you need to modify CONFIC.SYS to load
  1869.   EMS2EXT. The statement to load EMS2EXT must come after the one that
  1870.   loads your expanded memory manager and looks likc:
  1871.  
  1872.     DEVICE=C:\QEMM\EMS2EXT.SYS MEMORY=NNN SPEED
  1873.  
  1874.   Several components of this statement need to be explaincd.
  1875.  
  1876.  
  1877. 4S   CHAPTER ~: OTHER QEMM-~6 PROCiRAMS
  1878.  
  1879.     The nnn paramcter in MEMORY=nnn is the number of kilobytes of ex-
  1880.     panded memory to allocate, i.e. MEMORY=512. This is optional.
  1881.  
  1882.     The speed parameter is the optional specification for using faster or
  1883.     slower mcmory for allocation. Lcave this part of the linc blank or use
  1884.     either, FAST or SLOW.
  1885.  
  1886.   The EMS programs providc a number of informativc and powerful func-
  1887.   tions to help you make the best usc of your EMS 4.() expanded mcmory
  1888.   where you might have special or unusual requircmcnts. Although anyonc
  1889.   might bcnefit from the EMS summary status report and othcrs by seeing tht~
  1890.   detail of expanded memory allocation, other uses of EMS whicll will be
  1891.   described in these sections are for thc morc technically minded.
  1892.  
  1893.   Most of the functions of the two EMS programs, EMS.SYS and EMS.COM,
  1894.   involve the manipulation of expanded memory handles. An EMS handle is a
  1895.   reference to a block of memory (~ero or more EMS pages) that the expanded
  1896.   memory manager issues whcn it allocates memory. A handle is represented
  1897.   by a number and it may be given a name.
  1898.  
  1899.   An expandcd memory handle, its name, and the pages of memory as-
  1900.   sociated with the handle are the fnndamental tokens of interaction between
  1901.   an application program and an expanded memory manager. The two EMS
  1902.   programs give you some of the same control functions availablc to
  1903.   programs. The principal need for caution when using the EMS programs
  1904.   arises because they give you access to handles which may belollg to other
  1905.   programs and EMS will not prevent you from inadvertent mischief making.
  1906.  
  1907.   With the EMS programs you can allocate and namc a block of memory with
  1908.   the CREATE option, and specify that the memory be fast or slow mcmory.
  1909.   You can free expanded memory pages allocated to a handlc with the FREE
  1910.   option. You can read data from a file into allocated expanded memory or
  1911.   write the data from allocated expanded memory to a file with the LOAD or
  1912.   SAVE options. An EMS handle can be renamed, and the number of memory
  1913.   pages can be changed.
  1914.  
  1915.   Along with the report features of EMS you can experiment with the func-
  1916.   tions using EMS as a command line interface to the expandcd memory
  1917.   manager.
  1918.  
  1919.   If parts of the expanded memory in your system runs at different speeds,
  1920.   you can use EMS to pre-allocate memory of one speed before you load a
  1921.   device driver or TSR so that it can only use the memory that rernains at thc
  1922.   other speed; and you can then free the memory for use by your other ap-
  1923.   plications. Manifest can show you if your memory runs at differellt rates.
  1924.  
  1925.   Developer's using expanded mcmory may make use of the LOAD and
  1926.   SAVE function to help them when they need to work with the same context
  1927.   repeatedly during development and debugging.
  1928.  
  1929.  
  1930. 46   CHAPTER ~: OTHER QEMM-~6 PROGRAMS
  1931.  
  1932.   All of these uses of EMS require an cxtensive knowledge of the various
  1933.   aspects of your system, from the details involved in thc DOS boot scqucnce,
  1934.   to uses and capabilites of expandcd and extended memory as well as an Ull-
  1935.   derstanding of the applications you are attempting to colltrol and optimii~.e.
  1936.  
  1937.   Both EMS.SYS and EMS.COM respond to thc same commalld linc options.
  1938.   You use EMS.SYS from within the CONFIG.SYS file to manipulatc expallded
  1939.   memory during the system boot sequence. You use EMS.COM from within
  1940.   the AUTOEXEC.BAT file at the end of the boot scquence or directly from
  1941.   DOS prompt as needed.
  1942.  
  1943.   Described below are the command line options of EMS alld the paramctcrs
  1944.   required by each option. Some of the options havc an abbreviated form.
  1945.   Where this is the case, the alternate form is shown immediately following
  1946.   the option when it is first introduced, and is enclosed in parentheses.
  1947.  
  1948.   To get a summary report of your expanded memory, you issue the EMS com-
  1949.   mand from the command line without any option specified. EMS outputs
  1950.   the following information.
  1951.  
  1952.   O the total amount of expandcd memory, and
  1953.  
  1954.   O the amount currently available, and
  1955.  
  1956.   O the address of the Page Frame.
  1957.  
  1958.   The DIR option displays, in tabular form, a breakdown of thc current ex-
  1959.   panded memory allocated. For each allocated handle, the number of ex-
  1960.   panded memory pages is given, the number of kilobytcs of memory thosc
  1961.   pages represent, and the name assigned to that handle, if any.
  1962.  
  1963.   The CREATE (CR) option is used to allocate pages of expanded mcmory. Tt
  1964.   takes two parameters. CREATE requires that you providc a name for the
  1965.   memory you are allocating and that you specify the amount of memory. The
  1966.   name may be one to eight characters long. The name nccd not be enclosed in
  1967.   quotation marks unless it contains blanks. The amount of memory you arc al-
  1968.   locating may be expressed in EMS pages (16K per page) or in kilobytes. If
  1969.   you specify the number of kilobytes, thc memory manager will round the
  1970.   number up if necessary to determine the number of pages. Follow the EMS
  1971.   CREATE command with EMS DIR command to confirm the allocation and
  1972.   to determine the handle number assigned to the name.
  1973.  
  1974.   The CREATEFAST (CFAST) and CREATESLOW (CSLOW) options are
  1975.   forms of the CREATE option that also instruct the memory manager to allo-
  1976.   cate the memory from either faster or slower memory. I]sc Manifest's
  1977.   Memory Timings to determine if this form of CREATE is important to you.
  1978.  
  1979.   The FREE option frees memory and deallocates a handle. FREE requires that
  1980.   you specify the handle to deallocate--by its name or its number.
  1981.  
  1982.  
  1983.  
  1984. 47   CHAPTER 8: OTHER QEMM-386 PROGRAMS
  1985.  
  1986.   The RENAME (REN) option lets you assign a new name to a halldle The
  1987.   first argument to RENAME is the original handle. You may refer to this hand-
  1988.   le by its number or its name. The second argument is the new handle name.
  1989.  
  1990.   The RESIZE (RES) option lets you increase or decreasc thc number of pagts
  1991.   assigned to a handle. Its two arguments are the same as those of CREATE.
  1992.  
  1993.   The SAVE option allows you to savc the contents of thc t~xpanded memory
  1994.   pages associated with an EMS handle to a file. This option rcquires that you
  1995.   also specify the handle namc (or number) and the file name.
  1996.  
  1997.   The LOAD option allows you to restore the contents of expanded mcmory
  1998.   pages that have been stored in a file. This option requires that you also
  1999.   specify the handle name (or number) and the file name which contains the
  2000.   data you want to restore. The number of pages required will be automatically
  2001.   allocated based on the files size.
  2002.  
  2003.   The EMS programs also respond to the options common to all the programs
  2004.   supplied with your QEMM-386 programs:
  2005.  
  2006.   O NOPAUSEONERROR (NOPE) instructs EMS not to pause on error.
  2007.  
  2008.   Ll PAUSE instructs the program to pause while parsing commands.
  2009.  
  2010.   O HELP displays EMS help tcxt.
  2011.  
  2012.   O ? Iists all EMS command paramcters.
  2013.  
  2014.   You can load EMS2EXT as described in the EMS2EXT section of this chapter,
  2015.   but without specifying any memory parameter at all. EMS2EXT will be resi-
  2016.   dent, but it will not allocate any mcmory. It will, howcver, recognize as its
  2017.   memory a handle with the name "EM52EXT". You can then, as needcd, cre-
  2018.   ate, grow, or shrink the amount of extendcd memory for this handle using
  2019.   EMS.COM.
  2020.  
  2021.   This capability should only be used in special situations when you know
  2022.   how and when the program will use extended memory. For instance, a pro-
  2023.   gram could be given extended memory only while it is running. You could
  2024.   make a batch file wich ran EMS CREATE "EMS2EXT" 128K bcfore running
  2025.   the application. When the program terminates, allotller EMS statemcnt could
  2026.   frec thc m(~m(lry
  2027.  
  2028.  
  2029.  
  2030.  
  2031.  
  2032.  
  2033.  
  2034.  
  2035.  
  2036.  
  2037. 4X   CHAPTER X: OTHER QEMM-~.ts~6 PROGRAMS
  2038.